From 337454f3878594bfdceed162e0c2ed81c6f9b8c3 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 29 Apr 2014 14:18:30 +0000 Subject: [PATCH] fix memory leak for initial empty menubar, see #15666 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/menu_osx.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/osx/menu_osx.cpp b/src/osx/menu_osx.cpp index 97685d31ef..0b4b1fc296 100644 --- a/src/osx/menu_osx.cpp +++ b/src/osx/menu_osx.cpp @@ -31,6 +31,7 @@ #endif #include "wx/osx/private.h" +#include "wx/scopedptr.h" // other standard headers // ---------------------- @@ -584,7 +585,7 @@ bool wxMenuBar::s_macAutoWindowMenu = true ; WXHMENU wxMenuBar::s_macWindowMenuHandle = NULL ; -wxMenu* emptyMenuBar = NULL; +wxScopedPtr gs_emptyMenuBar; const int firstMenuPos = 1; // to account for the 0th application menu on mac @@ -637,10 +638,10 @@ static wxMenu *CreateAppleMenu() void wxMenuBar::Init() { - if ( emptyMenuBar == NULL ) + if ( !gs_emptyMenuBar ) { - emptyMenuBar = new wxMenu(); - emptyMenuBar->AppendSubMenu(CreateAppleMenu(), "\x14") ; + gs_emptyMenuBar.reset( new wxMenu() ); + gs_emptyMenuBar->AppendSubMenu(CreateAppleMenu(), "\x14") ; } m_eventHandler = this; @@ -682,7 +683,7 @@ wxMenuBar::~wxMenuBar() if (s_macInstalledMenuBar == this) { - emptyMenuBar->GetPeer()->MakeRoot(); + gs_emptyMenuBar->GetPeer()->MakeRoot(); s_macInstalledMenuBar = NULL; } wxDELETE( m_rootMenu );