]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't crash if wxMimeTypesManager is used before wxApp creation.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 10 Apr 2010 18:13:34 +0000 (18:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 10 Apr 2010 18:13:34 +0000 (18:13 +0000)
This is arguably not a supported use case but this apparently used to work
before and so it's probably not a good idea to break it now.

Closes #11927.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/unix/mimetype.cpp

index 05426d667ae373c2f025b9f9a19c7586abd1b837..caa9459875e990a4b8bfa67a1fb482553792b521 100644 (file)
@@ -507,14 +507,19 @@ void wxMimeTypesManagerImpl::InitIfNeeded()
         // set the flag first to prevent recursion
         m_initialized = true;
 
-        wxString wm = wxTheApp->GetTraits()->GetDesktopEnvironment();
+        int mailcapStyles = wxMAILCAP_ALL;
+        if ( wxAppTraits * const traits = wxApp::GetTraitsIfExists() )
+        {
+            wxString wm = traits->GetDesktopEnvironment();
 
-        if (wm == wxT("KDE"))
-            Initialize( wxMAILCAP_KDE  );
-        else if (wm == wxT("GNOME"))
-            Initialize( wxMAILCAP_GNOME );
-        else
-            Initialize();
+            if ( wm == "KDE" )
+                mailcapStyles = wxMAILCAP_KDE;
+            else if ( wm == "GNOME" )
+                mailcapStyles = wxMAILCAP_GNOME;
+            //else: unknown, use the default
+        }
+
+        Initialize(mailcapStyles);
     }
 }