mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-09 14:43:57 +01:00
Exception safety in: overrides of ShowInterface
This commit is contained in:
@@ -1423,10 +1423,14 @@ bool AudioUnitEffect::ShowInterface(wxWindow *parent, bool forceModal)
|
||||
{
|
||||
if (mDialog)
|
||||
{
|
||||
mDialog->Close(true);
|
||||
if( mDialog->Close(true) )
|
||||
mDialog = nullptr;
|
||||
return false;
|
||||
}
|
||||
|
||||
// mDialog is null
|
||||
auto cleanup = valueRestorer( mDialog );
|
||||
|
||||
mDialog = mHost->CreateUI(parent, this);
|
||||
if (!mDialog)
|
||||
{
|
||||
@@ -1436,12 +1440,12 @@ bool AudioUnitEffect::ShowInterface(wxWindow *parent, bool forceModal)
|
||||
if ((SupportsRealtime() || GetType() == EffectTypeAnalyze) && !forceModal)
|
||||
{
|
||||
mDialog->Show();
|
||||
cleanup.release();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool res = mDialog->ShowModal() != 0;
|
||||
mDialog = NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user