1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-05 03:03:10 +01:00

Some uses of Destroy_ptr let us remove some naked news

This commit is contained in:
Paul Licameli
2016-08-09 22:46:59 -04:00
parent aaeaadff07
commit fec4069d9d
5 changed files with 36 additions and 37 deletions

View File

@@ -111,14 +111,15 @@ class ScreenFrame final : public wxFrame
DECLARE_EVENT_TABLE()
};
static ScreenFrame *mFrame = NULL;
using ScreenFramePtr = Destroy_ptr<ScreenFrame>;
ScreenFramePtr mFrame;
////////////////////////////////////////////////////////////////////////////////
void OpenScreenshotTools()
{
if (!mFrame) {
mFrame = new ScreenFrame(NULL, -1);
mFrame = ScreenFramePtr{ safenew ScreenFrame(NULL, -1) };
}
mFrame->Show();
mFrame->Raise();
@@ -126,10 +127,7 @@ void OpenScreenshotTools()
void CloseScreenshotTools()
{
if (mFrame) {
mFrame->Destroy();
mFrame = NULL;
}
mFrame.reset();
}
////////////////////////////////////////////////////////////////////////////////
@@ -485,7 +483,8 @@ bool ScreenFrame::ProcessEvent(wxEvent & e)
void ScreenFrame::OnCloseWindow(wxCloseEvent & WXUNUSED(event))
{
mFrame = NULL;
if (this == mFrame.get())
mFrame.release();
Destroy();
}