From 37b56563763e4ccb00ffd8aa319f938d1adc6876 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 27 Oct 2022 22:11:10 -0400 Subject: [PATCH] Fix some crashes on project close --- include/ui/eventframes.h | 12 ------------ src/core/tileset.cpp | 15 +++++++++++---- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/include/ui/eventframes.h b/include/ui/eventframes.h index a85a8f08..942b9179 100644 --- a/include/ui/eventframes.h +++ b/include/ui/eventframes.h @@ -67,10 +67,6 @@ public: ObjectFrame(ObjectEvent *object, QWidget *parent = nullptr) : EventFrame(object, parent), object(object) {} - virtual ~ObjectFrame() { - delete this->scriptCompleter; - } - virtual void setup() override; virtual void initialize() override; virtual void connectSignals() override; @@ -148,10 +144,6 @@ public: TriggerFrame(TriggerEvent *trigger, QWidget *parent = nullptr) : EventFrame(trigger, parent), trigger(trigger) {} - virtual ~TriggerFrame() { - delete this->scriptCompleter; - } - virtual void setup() override; virtual void initialize() override; virtual void connectSignals() override; @@ -198,10 +190,6 @@ public: SignFrame(SignEvent *sign, QWidget *parent = nullptr) : EventFrame(sign, parent), sign(sign) {} - virtual ~SignFrame() { - delete this->scriptCompleter; - } - virtual void setup() override; virtual void initialize() override; virtual void connectSignals() override; diff --git a/src/core/tileset.cpp b/src/core/tileset.cpp index adfb0a13..50623efd 100644 --- a/src/core/tileset.cpp +++ b/src/core/tileset.cpp @@ -18,12 +18,15 @@ Tileset::Tileset(const Tileset &other) metatile_attrs_label(other.metatile_attrs_label), metatile_attrs_path(other.metatile_attrs_path), tilesImagePath(other.tilesImagePath), - tilesImage(other.tilesImage), + tilesImage(other.tilesImage.copy()), palettePaths(other.palettePaths), - tiles(other.tiles), palettes(other.palettes), palettePreviews(other.palettePreviews) { + for (auto tile : other.tiles) { + tiles.append(tile.copy()); + } + for (auto *metatile : other.metatiles) { metatiles.append(new Metatile(*metatile)); } @@ -39,12 +42,16 @@ Tileset &Tileset::operator=(const Tileset &other) { metatile_attrs_label = other.metatile_attrs_label; metatile_attrs_path = other.metatile_attrs_path; tilesImagePath = other.tilesImagePath; - tilesImage = other.tilesImage; + tilesImage = other.tilesImage.copy(); palettePaths = other.palettePaths; - tiles = other.tiles; palettes = other.palettes; palettePreviews = other.palettePreviews; + tiles.clear(); + for (auto tile : other.tiles) { + tiles.append(tile.copy()); + } + metatiles.clear(); for (auto *metatile : other.metatiles) { metatiles.append(new Metatile(*metatile));