From fd230129b59def0ec6b8ab26889e1b852d7e5bfd Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 24 Mar 2008 02:38:56 +0000 Subject: [PATCH] fix (one off, so not really important) memory leak which happened if an application using XRCID() in event tables didn't initialize (and hence didn't shutdown) wx git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/xrc/xmlres.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp index 466faa9870..dfd48835d2 100644 --- a/src/xrc/xmlres.cpp +++ b/src/xrc/xmlres.cpp @@ -1782,6 +1782,17 @@ static void AddStdXRCID_Records() // --------------- module and globals ----------------------------- +// normally we would do the cleanup from wxXmlResourceModule::OnExit() but it +// can happen that some XRC records have been created because of the use of +// XRCID() in event tables, which happens during static objects initialization, +// but then the application initialization failed and so the wx modules were +// neither initialized nor cleaned up -- this static object does the cleanup in +// this case +static struct wxXRCStaticCleanup +{ + ~wxXRCStaticCleanup() { CleanXRCID_Records(); } +} s_staticCleanup; + class wxXmlResourceModule: public wxModule { DECLARE_DYNAMIC_CLASS(wxXmlResourceModule) -- 2.45.2