From e9305c7554d14800b715644c877127f4370f5186 Mon Sep 17 00:00:00 2001 From: Twan van Laarhoven Date: Sun, 31 May 2020 16:16:34 +0200 Subject: [PATCH] Use smart pointer --- src/gui/symbol/window.cpp | 8 ++++---- src/gui/symbol/window.hpp | 4 ++-- src/gui/value/symbol.cpp | 4 ++-- src/gui/value/symbol.hpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/gui/symbol/window.cpp b/src/gui/symbol/window.cpp index 23a0a6a5..2ab47263 100644 --- a/src/gui/symbol/window.cpp +++ b/src/gui/symbol/window.cpp @@ -42,9 +42,10 @@ SymbolWindow::SymbolWindow(Window* parent, const String& filename) init(parent, symbol); } -SymbolWindow::SymbolWindow(Window* parent, ValueActionPerformer* performer) - : performer(performer) +SymbolWindow::SymbolWindow(Window* parent, unique_ptr performer_) + : performer(move(performer_)) { + assert(performer); // attempt to load symbol SymbolP symbol; SymbolValueP value = static_pointer_cast(performer->value); @@ -61,7 +62,6 @@ SymbolWindow::SymbolWindow(Window* parent, ValueActionPerformer* performer) init(parent, symbol); } SymbolWindow::~SymbolWindow() { - delete performer; } void SymbolWindow::init(Window* parent, SymbolP symbol) { @@ -290,7 +290,7 @@ void SymbolWindow::onUpdateUI(wxUpdateUIEvent& ev) { switch(ev.GetId()) { // file menu case ID_FILE_STORE: { - ev.Enable(performer); + ev.Enable((bool)performer); break; // undo/redo } case ID_EDIT_UNDO: { diff --git a/src/gui/symbol/window.hpp b/src/gui/symbol/window.hpp index df13b289..9ca64427 100644 --- a/src/gui/symbol/window.hpp +++ b/src/gui/symbol/window.hpp @@ -26,7 +26,7 @@ public: /// Construct a SymbolWindow showing a symbol from a file SymbolWindow(Window* parent, const String& filename); /// Construct a SymbolWindow showing a symbol value in a set - SymbolWindow(Window* parent, ValueActionPerformer* performer); + SymbolWindow(Window* parent, unique_ptr performer); ~SymbolWindow(); private: @@ -39,7 +39,7 @@ private: SymbolPartList* parts; ///< A list of parts in the symbol // when editing a symbol field - ValueActionPerformer* performer; + unique_ptr performer; // --------------------------------------------------- : Event handling DECLARE_EVENT_TABLE(); diff --git a/src/gui/value/symbol.cpp b/src/gui/value/symbol.cpp index 8280347d..1d070ab8 100644 --- a/src/gui/value/symbol.cpp +++ b/src/gui/value/symbol.cpp @@ -116,6 +116,6 @@ void SymbolValueEditor::editSymbol() { wnd->Show(); } -ValueActionPerformer* SymbolValueEditor::getActionPerformer() { - return new ValueActionPerformer(valueP(), editor().getCard(), editor().getSetForActions()); +unique_ptr SymbolValueEditor::getActionPerformer() { + return make_unique(valueP(), editor().getCard(), editor().getSetForActions()); } diff --git a/src/gui/value/symbol.hpp b/src/gui/value/symbol.hpp index 5fdca2c1..516ff087 100644 --- a/src/gui/value/symbol.hpp +++ b/src/gui/value/symbol.hpp @@ -35,7 +35,7 @@ private: /// Show the symbol editor void editSymbol(); /// Get an object to perform actions for us - ValueActionPerformer* getActionPerformer(); + unique_ptr getActionPerformer(); // button, or -1 for mouse down, but not on button, or -2 for mouse not down int button_down;