X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2de5a6ee23e6d099c86493ca212952a8364514c8..44fd6f721ad375033b2a2b64ac5f703ac70cb8f0:/src/common/fs_mem.cpp diff --git a/src/common/fs_mem.cpp b/src/common/fs_mem.cpp index c94c250e4b..8e77fde518 100644 --- a/src/common/fs_mem.cpp +++ b/src/common/fs_mem.cpp @@ -3,11 +3,18 @@ // Purpose: in-memory file system // Author: Vaclav Slavik // Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows Licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) && !defined(__EMX__) +// Some older compilers (such as EMX) cannot handle +// #pragma interface/implementation correctly, iff +// #pragma implementation is used in _two_ translation +// units (as created by e.g. event.cpp compiled for +// libwx_base and event.cpp compiled for libwx_gui_core). +// So we must not use those pragmas for those compilers in +// such files. #pragma implementation "fs_mem.h" #endif @@ -19,11 +26,12 @@ #if wxUSE_FILESYSTEM && wxUSE_STREAMS -#include "wx/image.h" -#include "wx/bitmap.h" #include "wx/fs_mem.h" -#ifdef __WXBASE__ +#if wxUSE_GUI + #include "wx/image.h" + #include "wx/bitmap.h" +#endif // wxUSE_GUI #ifndef WXPRECOMP #include "wx/intl.h" @@ -75,6 +83,8 @@ class MemFSHashObj : public wxObject } }; +#if wxUSE_BASE + //-------------------------------------------------------------------------------- // wxMemoryFSHandler @@ -98,6 +108,7 @@ wxMemoryFSHandlerBase::~wxMemoryFSHandlerBase() if (m_Hash) { + WX_CLEAR_HASH_TABLE(*m_Hash); delete m_Hash; m_Hash = NULL; } @@ -157,7 +168,6 @@ bool wxMemoryFSHandlerBase::CheckHash(const wxString& filename) if (m_Hash == NULL) { m_Hash = new wxHashTable(wxKEY_STRING); - m_Hash -> DeleteContents(TRUE); } if (m_Hash -> Get(filename) != NULL) @@ -200,17 +210,16 @@ bool wxMemoryFSHandlerBase::CheckHash(const wxString& filename) delete m_Hash -> Delete(filename); } -#endif // __WXBASE__ +#endif // wxUSE_BASE #if wxUSE_GUI #if wxUSE_IMAGE /*static*/ void -wxMemoryFSHandlerBase::AddFile(const wxString& filename, wxImage& image, long type) +wxMemoryFSHandler::AddFile(const wxString& filename, wxImage& image, long type) { if (!CheckHash(filename)) return; - wxMemoryOutputStream mems; if (image.Ok() && image.SaveFile(mems, (int)type)) m_Hash -> Put(filename, new MemFSHashObj(mems)); @@ -222,7 +231,6 @@ wxMemoryFSHandlerBase::AddFile(const wxString& filename, wxImage& image, long ty wxLogError(s); } } -#endif // wxUSE_IMAGE /*static*/ void wxMemoryFSHandler::AddFile(const wxString& filename, const wxBitmap& bitmap, long type) { @@ -230,7 +238,9 @@ wxMemoryFSHandlerBase::AddFile(const wxString& filename, wxImage& image, long ty AddFile(filename, img, type); } -#endif +#endif // wxUSE_IMAGE + +#endif // wxUSE_GUI #endif // wxUSE_FILESYSTEM && wxUSE_FS_ZIP