]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/menu.cpp
Fix out of bounds string access in wxMSW wxDirDialog.
[wxWidgets.git] / src / univ / menu.cpp
index 4714ba73f3464a2d6461f6defb26f03633a8751f..5bc9e4ae72381a0786d6ae68d79af2aa6509a5d1 100644 (file)
@@ -281,10 +281,6 @@ private:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler)
-IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxWindow)
-IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
-
 BEGIN_EVENT_TABLE(wxPopupMenuWindow, wxPopupTransientWindow)
     EVT_KEY_DOWN(wxPopupMenuWindow::OnKeyDown)
 
@@ -1096,11 +1092,7 @@ const wxMenuGeometryInfo& wxMenu::GetGeometryInfo() const
 
 void wxMenu::InvalidateGeometryInfo()
 {
-    if ( m_geometry )
-    {
-        delete m_geometry;
-        m_geometry = NULL;
-    }
+    wxDELETE(m_geometry);
 }
 
 // ----------------------------------------------------------------------------
@@ -2497,10 +2489,6 @@ bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y)
     Update();
 #endif // 0
 
-    menu->SetInvokingWindow(this);
-
-    // wxLogDebug( "Name of invoking window %s", menu->GetInvokingWindow()->GetName().c_str() );
-
     menu->Popup(ClientToScreen(wxPoint(x, y)), wxSize(0,0));
 
     // this is not very useful if the menu was popped up because of the mouse
@@ -2517,14 +2505,11 @@ bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y)
     ms_evtLoopPopup = new wxEventLoop;
     ms_evtLoopPopup->Run();
 
-    delete ms_evtLoopPopup;
-    ms_evtLoopPopup = NULL;
+    wxDELETE(ms_evtLoopPopup);
 
     // remove the handler
     PopEventHandler(true /* delete it */);
 
-    menu->SetInvokingWindow(NULL);
-
 #ifdef __WXMSW__
     SetCursor(cursorOld);
 #endif // __WXMSW__