diff --git a/src/wxmac/src/mac/wxMacDC.cc b/src/wxmac/src/mac/wxMacDC.cc index b3af74a244..418a930503 100644 --- a/src/wxmac/src/mac/wxMacDC.cc +++ b/src/wxmac/src/mac/wxMacDC.cc @@ -24,6 +24,7 @@ wxMacDC::wxMacDC(CGrafPtr port) //----------------------------------------------------------------------------- wxMacDC::~wxMacDC(void) // destructor { + cCurrentUser = NULL; } //----------------------------------------------------------------------------- diff --git a/src/wxmac/src/mac/wx_menu.cc b/src/wxmac/src/mac/wx_menu.cc index b7c07b4eaf..1ac65708d5 100644 --- a/src/wxmac/src/mac/wx_menu.cc +++ b/src/wxmac/src/mac/wx_menu.cc @@ -194,11 +194,13 @@ wxMenu::~wxMenu(void) wxNode* node; wxMenuItem* item; - if (menu_bar) // may have to remove menu from the current mac menu bar - { - menu_bar->Delete(this); - } else if (window_parent) - ((wxMenu *)window_parent)->Delete(this, 0, -1); + if (menu_bar) { // may have to remove menu from the current mac menu bar + menu_bar->Delete(this); + menu_bar = NULL; + } else if (window_parent) { + ((wxMenu *)window_parent)->Delete(this, 0, -1); + window_parent = NULL; + } ::DisposeMenu(cMacMenu); // does not dispose of submenus diff --git a/src/wxmac/src/mac/wx_print.cc b/src/wxmac/src/mac/wx_print.cc index 4bf1df93fa..f73c31752f 100644 --- a/src/wxmac/src/mac/wx_print.cc +++ b/src/wxmac/src/mac/wx_print.cc @@ -115,11 +115,15 @@ wxPrintData::wxPrintData(void) wxPrintData::~wxPrintData(void) { - if (cPrintSettings) + if (cPrintSettings) { PMRelease(cPrintSettings); + cPrintSettings = NULL; + } - if (cPageFormat) + if (cPageFormat) { PMRelease(cPageFormat); + cPageFormat = NULL; + } if (cPrintSession) { PMRelease(cPrintSession); diff --git a/src/wxmac/src/mac/wx_win.cc b/src/wxmac/src/mac/wx_win.cc index d0ac105e45..b4fed99785 100644 --- a/src/wxmac/src/mac/wx_win.cc +++ b/src/wxmac/src/mac/wx_win.cc @@ -363,6 +363,11 @@ wxWindow::~wxWindow(void) // Destructor DisposeControl(cPaintControl); cPaintControl = NULL; } + + /* Must zero out fieldsd that are WXGC_IGNOREd: */ + cParentArea = NULL; + cMacDC = NULL; + window_parent = NULL; } //============================================================================= diff --git a/src/wxwindow/src/base/wb_item.cxx b/src/wxwindow/src/base/wb_item.cxx index b23e0011b2..aede1ff657 100644 --- a/src/wxwindow/src/base/wb_item.cxx +++ b/src/wxwindow/src/base/wb_item.cxx @@ -153,6 +153,8 @@ wxbMenu::wxbMenu (char *Title, wxFunction WXUNUSED(func)) // The wxWindow destructor will take care of deleting the submenus. wxbMenu::~wxbMenu (void) { + menu_bar= NULL; + top_level_menu = NULL; } wxMenuItem *wxbMenu::FindItemForId (long itemId, wxMenu ** itemMenu, int * pos) @@ -252,6 +254,7 @@ wxbMenuBar::wxbMenuBar (int N, wxMenu * Menus[], char *Titles[]) wxbMenuBar::~wxbMenuBar (void) { + menu_bar_frame = NULL; } void wxbMenuBar::Append (wxMenu * menu, char *title) diff --git a/src/wxwindow/src/msw/wx_choic.cxx b/src/wxwindow/src/msw/wx_choic.cxx index 1a1ece0176..2f3a08f440 100644 --- a/src/wxwindow/src/msw/wx_choic.cxx +++ b/src/wxwindow/src/msw/wx_choic.cxx @@ -466,6 +466,7 @@ wxCombo::wxCombo(wxWindow *for_canvas, wxCombo::~wxCombo(void) { + forCanvas = NULL; } Bool wxCombo::PreOnEvent(wxWindow *win, wxMouseEvent *e)