From c3e53ea26ee066be96f15d67df0166f7807ef055 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 7 Aug 2016 14:51:39 -0400 Subject: [PATCH] Remove some naked new amd delete in: overrides of CommandType::BuildSignature --- src/commands/BatchEvalCommand.cpp | 12 ++++++------ src/commands/CommandMisc.h | 3 ++- src/commands/CommandSignature.cpp | 10 ++-------- src/commands/CommandSignature.h | 2 +- src/commands/CompareAudioCommand.cpp | 4 ++-- src/commands/ExecMenuCommand.cpp | 4 ++-- src/commands/GetAllMenuCommands.cpp | 4 ++-- src/commands/GetProjectInfoCommand.cpp | 4 ++-- src/commands/GetTrackInfoCommand.cpp | 8 ++++---- src/commands/HelpCommand.cpp | 4 ++-- src/commands/ImportExportCommands.cpp | 16 ++++++++-------- src/commands/MessageCommand.cpp | 4 ++-- src/commands/OpenSaveCommands.cpp | 20 ++++++++++---------- src/commands/PreferenceCommands.cpp | 12 ++++++------ src/commands/ScreenshotCommand.cpp | 12 ++++++------ src/commands/SelectCommand.cpp | 24 ++++++++++++------------ src/commands/SetProjectInfoCommand.cpp | 8 ++++---- src/commands/SetTrackInfoCommand.cpp | 12 ++++++------ 18 files changed, 79 insertions(+), 84 deletions(-) diff --git a/src/commands/BatchEvalCommand.cpp b/src/commands/BatchEvalCommand.cpp index 864a98f91..b5d346396 100644 --- a/src/commands/BatchEvalCommand.cpp +++ b/src/commands/BatchEvalCommand.cpp @@ -22,12 +22,12 @@ wxString BatchEvalCommandType::BuildName() void BatchEvalCommandType::BuildSignature(CommandSignature &signature) { - Validator *commandNameValidator(new DefaultValidator()); - signature.AddParameter(wxT("CommandName"), wxT(""), commandNameValidator); - Validator *paramValidator(new DefaultValidator()); - signature.AddParameter(wxT("ParamString"), wxT(""), paramValidator); - Validator *chainValidator(new DefaultValidator()); - signature.AddParameter(wxT("ChainName"), wxT(""), chainValidator); + auto commandNameValidator = make_movable(); + signature.AddParameter(wxT("CommandName"), wxT(""), std::move(commandNameValidator)); + auto paramValidator = make_movable(); + signature.AddParameter(wxT("ParamString"), wxT(""), std::move(paramValidator)); + auto chainValidator = make_movable(); + signature.AddParameter(wxT("ChainName"), wxT(""), std::move(chainValidator)); } CommandHolder BatchEvalCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/CommandMisc.h b/src/commands/CommandMisc.h index 1da6ab10b..61531a8b6 100644 --- a/src/commands/CommandMisc.h +++ b/src/commands/CommandMisc.h @@ -26,7 +26,8 @@ class CommandType; typedef std::map ParamValueMap; // Map from parameter name to a suitable Validator -typedef std::map ValidatorMap; +// to do: use hash +typedef std::map> ValidatorMap; // Map from command name to type typedef std::map CommandMap; diff --git a/src/commands/CommandSignature.cpp b/src/commands/CommandSignature.cpp index 2864f21ef..e0151b557 100644 --- a/src/commands/CommandSignature.cpp +++ b/src/commands/CommandSignature.cpp @@ -20,17 +20,11 @@ CommandSignature::~CommandSignature() { - // Delete the validators - ValidatorMap::iterator iter; - for (iter = mValidators.begin(); iter != mValidators.end(); ++iter) - { - delete iter->second; - } } void CommandSignature::AddParameter(const wxString &name, const wxVariant &dft, - Validator *valid) + movable_ptr &&valid) { wxASSERT_MSG(valid->Validate(dft), wxT("Invalid command signature: the default value of '") @@ -42,7 +36,7 @@ void CommandSignature::AddParameter(const wxString &name, + valid->GetDescription() + wxT(".")); mDefaults.insert(std::pair(name, dft)); - mValidators.insert(std::pair(name, valid)); + mValidators.insert(ValidatorMap::value_type(name, std::move(valid))); } ParamValueMap CommandSignature::GetDefaults() const diff --git a/src/commands/CommandSignature.h b/src/commands/CommandSignature.h index 589a30a36..3f2868615 100644 --- a/src/commands/CommandSignature.h +++ b/src/commands/CommandSignature.h @@ -41,7 +41,7 @@ public: // valid: a suitable validator (caller doesn't need to DELETE it) void AddParameter(const wxString &name, const wxVariant &dft, - Validator *valid); + movable_ptr &&valid); // Methods for accessing the signature ParamValueMap GetDefaults() const; diff --git a/src/commands/CompareAudioCommand.cpp b/src/commands/CompareAudioCommand.cpp index 285efe88d..d7e3e35e4 100644 --- a/src/commands/CompareAudioCommand.cpp +++ b/src/commands/CompareAudioCommand.cpp @@ -29,8 +29,8 @@ wxString CompareAudioCommandType::BuildName() void CompareAudioCommandType::BuildSignature(CommandSignature &signature) { - DoubleValidator *thresholdValidator = new DoubleValidator(); - signature.AddParameter(wxT("Threshold"), 0.0, thresholdValidator); + auto thresholdValidator = make_movable(); + signature.AddParameter(wxT("Threshold"), 0.0, std::move(thresholdValidator)); } CommandHolder CompareAudioCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/ExecMenuCommand.cpp b/src/commands/ExecMenuCommand.cpp index 1514188b7..30ff561e4 100644 --- a/src/commands/ExecMenuCommand.cpp +++ b/src/commands/ExecMenuCommand.cpp @@ -24,8 +24,8 @@ wxString ExecMenuCommandType::BuildName() void ExecMenuCommandType::BuildSignature(CommandSignature &signature) { - Validator *menuCommandValidator(new DefaultValidator()); - signature.AddParameter(wxT("CommandName"), wxT(""), menuCommandValidator); + auto menuCommandValidator = make_movable(); + signature.AddParameter(wxT("CommandName"), wxT(""), std::move(menuCommandValidator)); } CommandHolder ExecMenuCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/GetAllMenuCommands.cpp b/src/commands/GetAllMenuCommands.cpp index 16e0c7e38..754266865 100644 --- a/src/commands/GetAllMenuCommands.cpp +++ b/src/commands/GetAllMenuCommands.cpp @@ -24,8 +24,8 @@ wxString GetAllMenuCommandsType::BuildName() void GetAllMenuCommandsType::BuildSignature(CommandSignature &signature) { - BoolValidator *showStatusValidator = new BoolValidator(); - signature.AddParameter(wxT("ShowStatus"), 0, showStatusValidator); + auto showStatusValidator = make_movable(); + signature.AddParameter(wxT("ShowStatus"), 0, std::move(showStatusValidator)); } CommandHolder GetAllMenuCommandsType::Create(std::unique_ptr &&target) diff --git a/src/commands/GetProjectInfoCommand.cpp b/src/commands/GetProjectInfoCommand.cpp index 1dbaa8033..1b40fc5b9 100644 --- a/src/commands/GetProjectInfoCommand.cpp +++ b/src/commands/GetProjectInfoCommand.cpp @@ -28,7 +28,7 @@ wxString GetProjectInfoCommandType::BuildName() void GetProjectInfoCommandType::BuildSignature(CommandSignature &signature) { - OptionValidator *infoTypeValidator = new OptionValidator(); + auto infoTypeValidator = make_movable(); infoTypeValidator->AddOption(wxT("Name")); infoTypeValidator->AddOption(wxT("NumberOfTracks")); infoTypeValidator->AddOption(wxT("SelectedTracks")); @@ -36,7 +36,7 @@ void GetProjectInfoCommandType::BuildSignature(CommandSignature &signature) infoTypeValidator->AddOption(wxT("SoloTracks")); infoTypeValidator->AddOption(wxT("FocusedTrackID")); // returns the Track ID number of the track in focus - signature.AddParameter(wxT("Type"), wxT("Name"), infoTypeValidator); + signature.AddParameter(wxT("Type"), wxT("Name"), std::move(infoTypeValidator)); } CommandHolder GetProjectInfoCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/GetTrackInfoCommand.cpp b/src/commands/GetTrackInfoCommand.cpp index faf605ae6..f0889e837 100644 --- a/src/commands/GetTrackInfoCommand.cpp +++ b/src/commands/GetTrackInfoCommand.cpp @@ -28,10 +28,10 @@ wxString GetTrackInfoCommandType::BuildName() void GetTrackInfoCommandType::BuildSignature(CommandSignature &signature) { - IntValidator *trackIndexValidator = new IntValidator(); - signature.AddParameter(wxT("TrackIndex"), 0, trackIndexValidator); + auto trackIndexValidator = make_movable(); + signature.AddParameter(wxT("TrackIndex"), 0, std::move(trackIndexValidator)); - OptionValidator *infoTypeValidator = new OptionValidator(); + auto infoTypeValidator = make_movable(); infoTypeValidator->AddOption(wxT("Name")); infoTypeValidator->AddOption(wxT("StartTime")); infoTypeValidator->AddOption(wxT("EndTime")); @@ -43,7 +43,7 @@ void GetTrackInfoCommandType::BuildSignature(CommandSignature &signature) infoTypeValidator->AddOption(wxT("Mute")); infoTypeValidator->AddOption(wxT("Focused")); - signature.AddParameter(wxT("Type"), wxT("Name"), infoTypeValidator); + signature.AddParameter(wxT("Type"), wxT("Name"), std::move(infoTypeValidator)); } CommandHolder GetTrackInfoCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/HelpCommand.cpp b/src/commands/HelpCommand.cpp index 8d11788e2..bfe262ea5 100644 --- a/src/commands/HelpCommand.cpp +++ b/src/commands/HelpCommand.cpp @@ -25,8 +25,8 @@ wxString HelpCommandType::BuildName() void HelpCommandType::BuildSignature(CommandSignature &signature) { - Validator *commandNameValidator = new DefaultValidator(); - signature.AddParameter(wxT("CommandName"), wxT(""), commandNameValidator); + auto commandNameValidator = make_movable(); + signature.AddParameter(wxT("CommandName"), wxT(""), std::move(commandNameValidator)); } CommandHolder HelpCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/ImportExportCommands.cpp b/src/commands/ImportExportCommands.cpp index 37f44ce67..654a46ef6 100644 --- a/src/commands/ImportExportCommands.cpp +++ b/src/commands/ImportExportCommands.cpp @@ -27,8 +27,8 @@ wxString ImportCommandType::BuildName() void ImportCommandType::BuildSignature(CommandSignature &signature) { - Validator *filenameValidator(new DefaultValidator()); - signature.AddParameter(wxT("Filename"), wxT(""), filenameValidator); + auto filenameValidator = make_movable(); + signature.AddParameter(wxT("Filename"), wxT(""), std::move(filenameValidator)); } CommandHolder ImportCommandType::Create(std::unique_ptr &&target) @@ -54,16 +54,16 @@ wxString ExportCommandType::BuildName() void ExportCommandType::BuildSignature(CommandSignature &signature) { - OptionValidator *modeValidator(new OptionValidator()); + auto modeValidator = make_movable(); modeValidator->AddOption(wxT("All")); modeValidator->AddOption(wxT("Selection")); - signature.AddParameter(wxT("Mode"), wxT("All"), modeValidator); + signature.AddParameter(wxT("Mode"), wxT("All"), std::move(modeValidator)); - Validator *filenameValidator(new DefaultValidator()); - signature.AddParameter(wxT("Filename"), wxT("exported.wav"), filenameValidator); + auto filenameValidator = make_movable(); + signature.AddParameter(wxT("Filename"), wxT("exported.wav"), std::move(filenameValidator)); - IntValidator *channelsValidator(new IntValidator()); - signature.AddParameter(wxT("Channels"), 1, channelsValidator); + auto channelsValidator = make_movable(); + signature.AddParameter(wxT("Channels"), 1, std::move(channelsValidator)); } CommandHolder ExportCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/MessageCommand.cpp b/src/commands/MessageCommand.cpp index caa15e8a2..ee49b95a0 100644 --- a/src/commands/MessageCommand.cpp +++ b/src/commands/MessageCommand.cpp @@ -23,8 +23,8 @@ wxString MessageCommandType::BuildName() void MessageCommandType::BuildSignature(CommandSignature &signature) { - Validator *stringValidator = new DefaultValidator(); - signature.AddParameter(wxT("MessageString"), wxT(""), stringValidator); + auto stringValidator = make_movable(); + signature.AddParameter(wxT("MessageString"), wxT(""), std::move(stringValidator)); } CommandHolder MessageCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/OpenSaveCommands.cpp b/src/commands/OpenSaveCommands.cpp index 8fdb63a2b..8b536fe2d 100644 --- a/src/commands/OpenSaveCommands.cpp +++ b/src/commands/OpenSaveCommands.cpp @@ -26,10 +26,10 @@ wxString OpenProjectCommandType::BuildName() void OpenProjectCommandType::BuildSignature(CommandSignature &signature) { - BoolValidator *addToHistoryValidator(new BoolValidator()); - signature.AddParameter(wxT("AddToHistory"), true, addToHistoryValidator); - Validator *filenameValidator(new DefaultValidator()); - signature.AddParameter(wxT("Filename"), wxT(""), filenameValidator); + auto addToHistoryValidator = make_movable(); + signature.AddParameter(wxT("AddToHistory"), true, std::move(addToHistoryValidator)); + auto filenameValidator = make_movable(); + signature.AddParameter(wxT("Filename"), wxT(""), std::move(filenameValidator)); } CommandHolder OpenProjectCommandType::Create(std::unique_ptr &&target) @@ -70,14 +70,14 @@ wxString SaveProjectCommandType::BuildName() void SaveProjectCommandType::BuildSignature(CommandSignature &signature) { - BoolValidator *saveCompressedValidator(new BoolValidator()); - BoolValidator *addToHistoryValidator(new BoolValidator()); + auto saveCompressedValidator = make_movable(); + auto addToHistoryValidator = make_movable(); - signature.AddParameter(wxT("Compress"), false, saveCompressedValidator); - signature.AddParameter(wxT("AddToHistory"), true, addToHistoryValidator); + signature.AddParameter(wxT("Compress"), false, std::move(saveCompressedValidator)); + signature.AddParameter(wxT("AddToHistory"), true, std::move(addToHistoryValidator)); - Validator *filenameValidator(new DefaultValidator()); - signature.AddParameter(wxT("Filename"), wxT(""), filenameValidator); + auto filenameValidator = make_movable(); + signature.AddParameter(wxT("Filename"), wxT(""), std::move(filenameValidator)); } CommandHolder SaveProjectCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/PreferenceCommands.cpp b/src/commands/PreferenceCommands.cpp index 13e52780c..26ef947f6 100644 --- a/src/commands/PreferenceCommands.cpp +++ b/src/commands/PreferenceCommands.cpp @@ -26,8 +26,8 @@ wxString GetPreferenceCommandType::BuildName() void GetPreferenceCommandType::BuildSignature(CommandSignature &signature) { - Validator *prefNameValidator(new DefaultValidator()); - signature.AddParameter(wxT("PrefName"), wxT(""), prefNameValidator); + auto prefNameValidator = make_movable(); + signature.AddParameter(wxT("PrefName"), wxT(""), std::move(prefNameValidator)); } CommandHolder GetPreferenceCommandType::Create(std::unique_ptr &&target) @@ -59,10 +59,10 @@ wxString SetPreferenceCommandType::BuildName() void SetPreferenceCommandType::BuildSignature(CommandSignature &signature) { - Validator *prefNameValidator(new DefaultValidator()); - signature.AddParameter(wxT("PrefName"), wxT(""), prefNameValidator); - Validator *prefValueValidator(new DefaultValidator()); - signature.AddParameter(wxT("PrefValue"), wxT(""), prefValueValidator); + auto prefNameValidator = make_movable(); + signature.AddParameter(wxT("PrefName"), wxT(""), std::move(prefNameValidator)); + auto prefValueValidator = make_movable(); + signature.AddParameter(wxT("PrefValue"), wxT(""), std::move(prefValueValidator)); } CommandHolder SetPreferenceCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/ScreenshotCommand.cpp b/src/commands/ScreenshotCommand.cpp index 10f4b43e3..bde605271 100644 --- a/src/commands/ScreenshotCommand.cpp +++ b/src/commands/ScreenshotCommand.cpp @@ -274,7 +274,7 @@ wxString ScreenshotCommandType::BuildName() void ScreenshotCommandType::BuildSignature(CommandSignature &signature) { - OptionValidator *captureModeValidator = new OptionValidator(); + auto captureModeValidator = make_movable(); captureModeValidator->AddOption(wxT("window")); captureModeValidator->AddOption(wxT("fullwindow")); captureModeValidator->AddOption(wxT("windowplus")); @@ -294,20 +294,20 @@ void ScreenshotCommandType::BuildSignature(CommandSignature &signature) captureModeValidator->AddOption(wxT("firsttrack")); captureModeValidator->AddOption(wxT("secondtrack")); - OptionValidator *backgroundValidator = new OptionValidator(); + auto backgroundValidator = make_movable(); backgroundValidator->AddOption(wxT("Blue")); backgroundValidator->AddOption(wxT("White")); backgroundValidator->AddOption(wxT("None")); - Validator *filePathValidator = new DefaultValidator(); + auto filePathValidator = make_movable(); signature.AddParameter(wxT("CaptureMode"), wxT("fullscreen"), - captureModeValidator); + std::move(captureModeValidator)); signature.AddParameter(wxT("Background"), wxT("None"), - backgroundValidator); - signature.AddParameter(wxT("FilePath"), wxT(""), filePathValidator); + std::move(backgroundValidator)); + signature.AddParameter(wxT("FilePath"), wxT(""), std::move(filePathValidator)); } CommandHolder ScreenshotCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/SelectCommand.cpp b/src/commands/SelectCommand.cpp index e8736b08a..6d0c6120d 100644 --- a/src/commands/SelectCommand.cpp +++ b/src/commands/SelectCommand.cpp @@ -29,25 +29,25 @@ wxString SelectCommandType::BuildName() void SelectCommandType::BuildSignature(CommandSignature &signature) { - OptionValidator *modeValidator = new OptionValidator(); + auto modeValidator = make_movable(); modeValidator->AddOption(wxT("None")); modeValidator->AddOption(wxT("All")); modeValidator->AddOption(wxT("Range")); modeValidator->AddOption(wxT("Name")); - signature.AddParameter(wxT("Mode"), wxT("All"), modeValidator); + signature.AddParameter(wxT("Mode"), wxT("All"), std::move(modeValidator)); - DoubleValidator *startTimeValidator = new DoubleValidator(); - signature.AddParameter(wxT("StartTime"), 0.0, startTimeValidator); - DoubleValidator *endTimeValidator = new DoubleValidator(); - signature.AddParameter(wxT("EndTime"), 0.0, endTimeValidator); - IntValidator *firstTrackValidator = new IntValidator(); + auto startTimeValidator = make_movable(); + signature.AddParameter(wxT("StartTime"), 0.0, std::move(startTimeValidator)); + auto endTimeValidator = make_movable(); + signature.AddParameter(wxT("EndTime"), 0.0, std::move(endTimeValidator)); - signature.AddParameter(wxT("FirstTrack"), 0, firstTrackValidator); - IntValidator *lastTrackValidator = new IntValidator(); - signature.AddParameter(wxT("LastTrack"), 0, lastTrackValidator); + auto firstTrackValidator = make_movable(); + signature.AddParameter(wxT("FirstTrack"), 0, std::move(firstTrackValidator)); + auto lastTrackValidator = make_movable(); + signature.AddParameter(wxT("LastTrack"), 0, std::move(lastTrackValidator)); - Validator *trackNameValidator = new DefaultValidator(); - signature.AddParameter(wxT("TrackName"), 0, trackNameValidator); + auto trackNameValidator = make_movable(); + signature.AddParameter(wxT("TrackName"), 0, std::move(trackNameValidator)); } CommandHolder SelectCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/SetProjectInfoCommand.cpp b/src/commands/SetProjectInfoCommand.cpp index b7372feba..0ae857f8e 100644 --- a/src/commands/SetProjectInfoCommand.cpp +++ b/src/commands/SetProjectInfoCommand.cpp @@ -30,15 +30,15 @@ wxString SetProjectInfoCommandType::BuildName() void SetProjectInfoCommandType::BuildSignature(CommandSignature &signature) { - OptionValidator *infoTypeValidator = new OptionValidator(); + auto infoTypeValidator = make_movable(); infoTypeValidator->AddOption(wxT("SelectedTracks")); infoTypeValidator->AddOption(wxT("MuteTracks")); infoTypeValidator->AddOption(wxT("SoloTracks")); - signature.AddParameter(wxT("Type"), wxT("Name"), infoTypeValidator); + signature.AddParameter(wxT("Type"), wxT("Name"), std::move(infoTypeValidator)); - BoolArrayValidator *TracksSetValidator = new BoolArrayValidator(); - signature.AddParameter(wxT(kSetOfTracksStr), wxT("x"), TracksSetValidator); + auto TracksSetValidator = make_movable(); + signature.AddParameter(wxT(kSetOfTracksStr), wxT("x"), std::move(TracksSetValidator)); } CommandHolder SetProjectInfoCommandType::Create(std::unique_ptr &&target) diff --git a/src/commands/SetTrackInfoCommand.cpp b/src/commands/SetTrackInfoCommand.cpp index 288b8f903..3b70dfd81 100644 --- a/src/commands/SetTrackInfoCommand.cpp +++ b/src/commands/SetTrackInfoCommand.cpp @@ -27,14 +27,14 @@ wxString SetTrackInfoCommandType::BuildName() void SetTrackInfoCommandType::BuildSignature(CommandSignature &signature) { - IntValidator *trackIndexValidator = new IntValidator(); - signature.AddParameter(wxT("TrackIndex"), 0, trackIndexValidator); + auto trackIndexValidator = make_movable(); + signature.AddParameter(wxT("TrackIndex"), 0, std::move(trackIndexValidator)); - OptionValidator *infoTypeValidator = new OptionValidator(); + auto infoTypeValidator = make_movable(); infoTypeValidator->AddOption(wxT("Name")); - signature.AddParameter(wxT("Type"), wxT("Name"), infoTypeValidator); - Validator *nameValidator = new DefaultValidator(); - signature.AddParameter(wxT("Name"), wxT("Unnamed"), nameValidator); + signature.AddParameter(wxT("Type"), wxT("Name"), std::move(infoTypeValidator)); + auto nameValidator = make_movable(); + signature.AddParameter(wxT("Name"), wxT("Unnamed"), std::move(nameValidator)); } CommandHolder SetTrackInfoCommandType::Create(std::unique_ptr &&target)