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();
+2 -2
View File
@@ -116,6 +116,6 @@ void SymbolValueEditor::editSymbol() {
wnd->Show();
}
ValueActionPerformer* SymbolValueEditor::getActionPerformer() {
return new ValueActionPerformer(valueP(), editor().getCard(), editor().getSetForActions());
unique_ptr<ValueActionPerformer> SymbolValueEditor::getActionPerformer() {
return make_unique<ValueActionPerformer>(valueP(), editor().getCard(), editor().getSetForActions());
}
+1 -1
View File
@@ -35,7 +35,7 @@ private:
/// Show the symbol editor
void editSymbol();
/// Get an object to perform actions for us
ValueActionPerformer* getActionPerformer();
unique_ptr<ValueActionPerformer> getActionPerformer();
// button, or -1 for mouse down, but not on button, or -2 for mouse not down
int button_down;