Remove some naked new amd delete in: overrides of CommandType::BuildSignature

This commit is contained in:
Paul Licameli 2016-08-07 14:51:39 -04:00
parent 473e955da3
commit c3e53ea26e
18 changed files with 79 additions and 84 deletions

View File

@ -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<DefaultValidator>();
signature.AddParameter(wxT("CommandName"), wxT(""), std::move(commandNameValidator));
auto paramValidator = make_movable<DefaultValidator>();
signature.AddParameter(wxT("ParamString"), wxT(""), std::move(paramValidator));
auto chainValidator = make_movable<DefaultValidator>();
signature.AddParameter(wxT("ChainName"), wxT(""), std::move(chainValidator));
}
CommandHolder BatchEvalCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -26,7 +26,8 @@ class CommandType;
typedef std::map<wxString, wxVariant> ParamValueMap;
// Map from parameter name to a suitable Validator
typedef std::map<wxString, Validator *> ValidatorMap;
// to do: use hash
typedef std::map<wxString, movable_ptr<Validator>> ValidatorMap;
// Map from command name to type
typedef std::map<wxString, CommandType*> CommandMap;

View File

@ -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<Validator> &&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<wxString, wxVariant>(name, dft));
mValidators.insert(std::pair<wxString, Validator*>(name, valid));
mValidators.insert(ValidatorMap::value_type(name, std::move(valid)));
}
ParamValueMap CommandSignature::GetDefaults() const

View File

@ -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<Validator> &&valid);
// Methods for accessing the signature
ParamValueMap GetDefaults() const;

View File

@ -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<DoubleValidator>();
signature.AddParameter(wxT("Threshold"), 0.0, std::move(thresholdValidator));
}
CommandHolder CompareAudioCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<DefaultValidator>();
signature.AddParameter(wxT("CommandName"), wxT(""), std::move(menuCommandValidator));
}
CommandHolder ExecMenuCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<BoolValidator>();
signature.AddParameter(wxT("ShowStatus"), 0, std::move(showStatusValidator));
}
CommandHolder GetAllMenuCommandsType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -28,7 +28,7 @@ wxString GetProjectInfoCommandType::BuildName()
void GetProjectInfoCommandType::BuildSignature(CommandSignature &signature)
{
OptionValidator *infoTypeValidator = new OptionValidator();
auto infoTypeValidator = make_movable<OptionValidator>();
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<CommandOutputTarget> &&target)

View File

@ -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<IntValidator>();
signature.AddParameter(wxT("TrackIndex"), 0, std::move(trackIndexValidator));
OptionValidator *infoTypeValidator = new OptionValidator();
auto infoTypeValidator = make_movable<OptionValidator>();
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<CommandOutputTarget> &&target)

View File

@ -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<DefaultValidator>();
signature.AddParameter(wxT("CommandName"), wxT(""), std::move(commandNameValidator));
}
CommandHolder HelpCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<DefaultValidator>();
signature.AddParameter(wxT("Filename"), wxT(""), std::move(filenameValidator));
}
CommandHolder ImportCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)
@ -54,16 +54,16 @@ wxString ExportCommandType::BuildName()
void ExportCommandType::BuildSignature(CommandSignature &signature)
{
OptionValidator *modeValidator(new OptionValidator());
auto modeValidator = make_movable<OptionValidator>();
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<DefaultValidator>();
signature.AddParameter(wxT("Filename"), wxT("exported.wav"), std::move(filenameValidator));
IntValidator *channelsValidator(new IntValidator());
signature.AddParameter(wxT("Channels"), 1, channelsValidator);
auto channelsValidator = make_movable<IntValidator>();
signature.AddParameter(wxT("Channels"), 1, std::move(channelsValidator));
}
CommandHolder ExportCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<DefaultValidator>();
signature.AddParameter(wxT("MessageString"), wxT(""), std::move(stringValidator));
}
CommandHolder MessageCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<BoolValidator>();
signature.AddParameter(wxT("AddToHistory"), true, std::move(addToHistoryValidator));
auto filenameValidator = make_movable<DefaultValidator>();
signature.AddParameter(wxT("Filename"), wxT(""), std::move(filenameValidator));
}
CommandHolder OpenProjectCommandType::Create(std::unique_ptr<CommandOutputTarget> &&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<BoolValidator>();
auto addToHistoryValidator = make_movable<BoolValidator>();
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<DefaultValidator>();
signature.AddParameter(wxT("Filename"), wxT(""), std::move(filenameValidator));
}
CommandHolder SaveProjectCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<DefaultValidator>();
signature.AddParameter(wxT("PrefName"), wxT(""), std::move(prefNameValidator));
}
CommandHolder GetPreferenceCommandType::Create(std::unique_ptr<CommandOutputTarget> &&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<DefaultValidator>();
signature.AddParameter(wxT("PrefName"), wxT(""), std::move(prefNameValidator));
auto prefValueValidator = make_movable<DefaultValidator>();
signature.AddParameter(wxT("PrefValue"), wxT(""), std::move(prefValueValidator));
}
CommandHolder SetPreferenceCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -274,7 +274,7 @@ wxString ScreenshotCommandType::BuildName()
void ScreenshotCommandType::BuildSignature(CommandSignature &signature)
{
OptionValidator *captureModeValidator = new OptionValidator();
auto captureModeValidator = make_movable<OptionValidator>();
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<OptionValidator>();
backgroundValidator->AddOption(wxT("Blue"));
backgroundValidator->AddOption(wxT("White"));
backgroundValidator->AddOption(wxT("None"));
Validator *filePathValidator = new DefaultValidator();
auto filePathValidator = make_movable<DefaultValidator>();
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<CommandOutputTarget> &&target)

View File

@ -29,25 +29,25 @@ wxString SelectCommandType::BuildName()
void SelectCommandType::BuildSignature(CommandSignature &signature)
{
OptionValidator *modeValidator = new OptionValidator();
auto modeValidator = make_movable<OptionValidator>();
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<DoubleValidator>();
signature.AddParameter(wxT("StartTime"), 0.0, std::move(startTimeValidator));
auto endTimeValidator = make_movable<DoubleValidator>();
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<IntValidator>();
signature.AddParameter(wxT("FirstTrack"), 0, std::move(firstTrackValidator));
auto lastTrackValidator = make_movable<IntValidator>();
signature.AddParameter(wxT("LastTrack"), 0, std::move(lastTrackValidator));
Validator *trackNameValidator = new DefaultValidator();
signature.AddParameter(wxT("TrackName"), 0, trackNameValidator);
auto trackNameValidator = make_movable<DefaultValidator>();
signature.AddParameter(wxT("TrackName"), 0, std::move(trackNameValidator));
}
CommandHolder SelectCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -30,15 +30,15 @@ wxString SetProjectInfoCommandType::BuildName()
void SetProjectInfoCommandType::BuildSignature(CommandSignature &signature)
{
OptionValidator *infoTypeValidator = new OptionValidator();
auto infoTypeValidator = make_movable<OptionValidator>();
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<BoolArrayValidator>();
signature.AddParameter(wxT(kSetOfTracksStr), wxT("x"), std::move(TracksSetValidator));
}
CommandHolder SetProjectInfoCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -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<IntValidator>();
signature.AddParameter(wxT("TrackIndex"), 0, std::move(trackIndexValidator));
OptionValidator *infoTypeValidator = new OptionValidator();
auto infoTypeValidator = make_movable<OptionValidator>();
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<DefaultValidator>();
signature.AddParameter(wxT("Name"), wxT("Unnamed"), std::move(nameValidator));
}
CommandHolder SetTrackInfoCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)