From: Robert Roebling Date: Fri, 5 Nov 2004 21:33:27 +0000 (+0000) Subject: Mem leaks in connection with print factory code. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/aac85509bd54338c3543ca565efe08e1d378a603 Mem leaks in connection with print factory code. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/appcmn.cpp b/src/common/appcmn.cpp index 43bd65360c..0c15d2a85d 100644 --- a/src/common/appcmn.cpp +++ b/src/common/appcmn.cpp @@ -46,6 +46,7 @@ #include "wx/thread.h" #include "wx/utils.h" #include "wx/ptr_scpd.h" +#include "wx/prntbase.h" #if defined(__WXMSW__) && !defined(__PALMOS__) #include "wx/msw/private.h" // includes windows.h for LOGFONT @@ -139,6 +140,8 @@ void wxAppBase::CleanUp() // but we want to delete them now delete wxTopLevelWindows.GetFirst()->GetData(); } + + wxPrintFactory::SetPrintFactory( NULL ); // undo everything we did in Initialize() above wxBitmap::CleanUpHandlers(); diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 3652abefa9..dc13526103 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -237,7 +237,12 @@ void wxPrintData::operator=(const wxPrintData& data) m_bin = data.m_bin; m_printMode = data.m_printMode; m_filename = data.m_filename; - + + // UnRef old m_nativeData + m_nativeData->m_ref--; + if (m_nativeData->m_ref == 0) + delete m_nativeData; + // Set Ref new one m_nativeData = data.GetNativeData(); m_nativeData->m_ref++;