X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e4db172a3b318df9aff178eb6c5da149d56e0859..0d91b2342a1f83b3b9db145c7210efd5d9547cc8:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index 27d4b8d429..43de8ee906 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -453,28 +453,27 @@ bool wxFileType::SetDefaultIcon(const wxString& cmd, int index) #endif } -//---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- // wxMimeTypesManagerFactory -//---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::m_factory = NULL; /* static */ -void wxMimeTypesManagerFactory::SetFactory( wxMimeTypesManagerFactory *factory ) +void wxMimeTypesManagerFactory::Set(wxMimeTypesManagerFactory *factory) { - if (wxMimeTypesManagerFactory::m_factory) - delete wxMimeTypesManagerFactory::m_factory; + delete m_factory; - wxMimeTypesManagerFactory::m_factory = factory; + m_factory = factory; } /* static */ -wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::GetFactory() +wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::Get() { - if (!wxMimeTypesManagerFactory::m_factory) - wxMimeTypesManagerFactory::m_factory = new wxMimeTypesManagerFactory; + if ( !m_factory ) + m_factory = new wxMimeTypesManagerFactory; - return wxMimeTypesManagerFactory::m_factory; + return m_factory; } wxMimeTypesManagerImpl *wxMimeTypesManagerFactory::CreateMimeTypesManagerImpl() @@ -489,7 +488,7 @@ wxMimeTypesManagerImpl *wxMimeTypesManagerFactory::CreateMimeTypesManagerImpl() void wxMimeTypesManager::EnsureImpl() { if ( !m_impl ) - m_impl = wxMimeTypesManagerFactory::GetFactory()->CreateMimeTypesManagerImpl(); + m_impl = wxMimeTypesManagerFactory::Get()->CreateMimeTypesManagerImpl(); } bool wxMimeTypesManager::IsOfType(const wxString& mimeType, @@ -528,6 +527,8 @@ wxMimeTypesManager::~wxMimeTypesManager() bool wxMimeTypesManager::Unassociate(wxFileType *ft) { + EnsureImpl(); + #if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__) return m_impl->Unassociate(ft); #else @@ -673,10 +674,12 @@ class wxMimeTypeCmnModule: public wxModule { public: wxMimeTypeCmnModule() : wxModule() { } + virtual bool OnInit() { return true; } virtual void OnExit() { - // this avoids false memory leak allerts: + wxMimeTypesManagerFactory::Set(NULL); + if ( gs_mimeTypesManager.m_impl != NULL ) { delete gs_mimeTypesManager.m_impl;