Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Plugins development => Topic started by: BentFX on March 04, 2012, 09:14:55 pm

Title: wxSmith memory management?
Post by: BentFX on March 04, 2012, 09:14:55 pm
Please forgive me if I'm way off base, I am a bit of a newbie. I certainly don't fully understand C++ memory management, but I do try to follow the rule of 'delete' everything you 'new'. I notice in a new project using the wxWidgets wizard and wxSmith as the GUI builder, new is called 7 times and delete is not called at all. Valgrind(which I'm also very new to) lists most of these newed items as possibly lost.

Are they actually being lost? Should I be deleting these items?

Search project files for "new"...
Code
testwxApp.cpp|26|testwxFrame* Frame = new testwxFrame(0);|
testwxMain.cpp|65|MenuBar1 = new wxMenuBar();|
testwxMain.cpp|66|Menu1 = new wxMenu();|
testwxMain.cpp|67|MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _("Quit\tAlt-F4"), _("Quit the application"), wxITEM_NORMAL);|
testwxMain.cpp|70|Menu2 = new wxMenu();|
testwxMain.cpp|71|MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info about this application"), wxITEM_NORMAL);|
testwxMain.cpp|75|StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1"));|

StatusBar1 is the only member variable which can be deleted in the frame destructor. The menu items are declare as local variables in the frame initialization, but it breaks the menus and the app if I delete them at the end of the initialization function. Does wxWidgets properly free that memory?

Should I be saving those addresses for deletion in the frame destructor, or am I just overthinking things?
--------
Xubuntu 11.10
Code::Blocks Release 10.05 rev 0 gcc 4.6.1 Linux/unicode - 64 bit
(Please don't turn this into an argument about downloading a nightly, unless you know that the nightly would address my specific concerns.)
Title: Re: wxSmith memory management?
Post by: oBFusCATed on March 04, 2012, 09:17:38 pm
Does wxWidgets properly free that memory?
Yes, please read a book about wxWidgets or its documentation.

Probably this one: http://docs.wxwidgets.org/stable/wx_allocatingobjects.html#allocatingobjects
On the wx's wiki you can find an article about using valgrind with wxwidgets programs.
Title: Re: wxSmith memory management?
Post by: BentFX on March 04, 2012, 09:25:57 pm
Thank you!

I will read that and I hope I understand some of it. It's often difficult sorting through the cruft in Google.

I appreciate your quick response.

EDIT: It's my bad. Google does drill right down to the page you linked when searching "wxWidgets new delete." Unfortunately I was thinking of this as a wxSmith issue and searching "wxSmith new delete" didn't produce anything meaningful in Google or here on the forum. On the upside, maybe now it will.