From: Václav Slavík Date: Sat, 4 Nov 2000 23:32:29 +0000 (+0000) Subject: workarounded false memory leak report X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/dbb88122c9b22aa02f8840d3bf92007781d11f25 workarounded false memory leak report git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 85a55e95b8..9925521aa3 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -35,6 +35,8 @@ IMPLEMENT_ABSTRACT_CLASS(wxFileSystemHandler, wxObject) +static wxFileTypeInfo *gs_FSMimeFallbacks = NULL; + wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) { wxString ext = wxEmptyString, mime = wxEmptyString; @@ -53,39 +55,8 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) static bool s_MinimalMimeEnsured = FALSE; if (!s_MinimalMimeEnsured) { - static const wxFileTypeInfo fallbacks[] = - { - wxFileTypeInfo("image/jpeg", - "", - "", - "JPEG image (from fallback)", - "jpg", "jpeg", NULL), - wxFileTypeInfo("image/gif", - "", - "", - "GIF image (from fallback)", - "gif", NULL), - wxFileTypeInfo("image/png", - "", - "", - "PNG image (from fallback)", - "png", NULL), - wxFileTypeInfo("image/bmp", - "", - "", - "windows bitmap image (from fallback)", - "bmp", NULL), - wxFileTypeInfo("text/html", - "", - "", - "HTML document (from fallback)", - "htm", "html", NULL), - - // must terminate the table with this! - wxFileTypeInfo() - }; - - wxTheMimeTypesManager -> AddFallbacks(fallbacks); + wxTheMimeTypesManager -> AddFallbacks(gs_FSMimeFallbacks); + s_MinimalMimeEnsured = TRUE; } ft = wxTheMimeTypesManager -> GetFileTypeFromExtension(ext); @@ -439,10 +410,47 @@ class wxFileSystemModule : public wxModule virtual bool OnInit() { wxFileSystem::AddHandler(new wxLocalFSHandler); + + gs_FSMimeFallbacks = new wxFileTypeInfo[6]; + gs_FSMimeFallbacks[0] = + wxFileTypeInfo("image/jpeg", + "", + "", + "JPEG image (from fallback)", + "jpg", "jpeg", NULL); + gs_FSMimeFallbacks[1] = + wxFileTypeInfo("image/gif", + "", + "", + "GIF image (from fallback)", + "gif", NULL); + gs_FSMimeFallbacks[2] = + wxFileTypeInfo("image/png", + "", + "", + "PNG image (from fallback)", + "png", NULL); + gs_FSMimeFallbacks[3] = + wxFileTypeInfo("image/bmp", + "", + "", + "windows bitmap image (from fallback)", + "bmp", NULL); + gs_FSMimeFallbacks[4] = + wxFileTypeInfo("text/html", + "", + "", + "HTML document (from fallback)", + "htm", "html", NULL); + gs_FSMimeFallbacks[5] = + // must terminate the table with this! + wxFileTypeInfo(); + return TRUE; } virtual void OnExit() { + delete gs_FSMimeFallbacks; wxFileSystem::CleanUpHandlers(); } };