X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88a7a4e10ed18f81a576dcd866cfbf02bf404c00..d10e22fe8ad283f37b1809349028ffc282e393ce:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index 44f0fbe108..db1cf082f3 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -33,10 +33,10 @@ #include "wx/dynarray.h" #include "wx/string.h" #include "wx/intl.h" + #include "wx/log.h" + #include "wx/module.h" #endif //WX_PRECOMP -#include "wx/module.h" -#include "wx/log.h" #include "wx/file.h" #include "wx/iconloc.h" #include "wx/confbase.h" @@ -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;