Use smart pointer

This commit is contained in:
Twan van Laarhoven
2020-05-31 16:16:34 +02:00
parent 1f75175943
commit e9305c7554
4 changed files with 9 additions and 9 deletions
+4 -4
View File
@@ -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<ValueActionPerformer> performer_)
: performer(move(performer_))
{
assert(performer);
// attempt to load symbol
SymbolP symbol;
SymbolValueP value = static_pointer_cast<SymbolValue>(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: {
+2 -2
View File
@@ -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<ValueActionPerformer> 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<ValueActionPerformer> performer;
// --------------------------------------------------- : Event handling
DECLARE_EVENT_TABLE();