X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec67cff1f6e63b3b27613a085f0492958e66a28e..94113cc55572d23b2c86b9140543d32858c1eee6:/src/common/fs_mem.cpp diff --git a/src/common/fs_mem.cpp b/src/common/fs_mem.cpp index d6b020b2ab..7475dfd1e9 100644 --- a/src/common/fs_mem.cpp +++ b/src/common/fs_mem.cpp @@ -3,14 +3,9 @@ // Purpose: in-memory file system // Author: Vaclav Slavik // Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows Licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fs_mem.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ @@ -19,10 +14,12 @@ #if wxUSE_FILESYSTEM && wxUSE_STREAMS -#include "wx/image.h" -#include "wx/bitmap.h" #include "wx/fs_mem.h" +#if wxUSE_GUI + #include "wx/image.h" + #include "wx/bitmap.h" +#endif // wxUSE_GUI #ifndef WXPRECOMP #include "wx/intl.h" @@ -44,7 +41,7 @@ class MemFSHashObj : public wxObject InitTime(); } - MemFSHashObj(wxMemoryOutputStream& stream) + MemFSHashObj(const wxMemoryOutputStream& stream) { m_Len = stream.GetSize(); m_Data = new char[m_Len]; @@ -70,7 +67,7 @@ class MemFSHashObj : public wxObject { #if wxUSE_DATETIME m_Time = wxDateTime::Now(); -#endif // wxUSE_DATETIME +#endif // wxUSE_DATETIME } }; @@ -99,6 +96,7 @@ wxMemoryFSHandlerBase::~wxMemoryFSHandlerBase() if (m_Hash) { + WX_CLEAR_HASH_TABLE(*m_Hash); delete m_Hash; m_Hash = NULL; } @@ -127,7 +125,7 @@ wxFSFile* wxMemoryFSHandlerBase::OpenFile(wxFileSystem& WXUNUSED(fs), const wxSt GetAnchor(location) #if wxUSE_DATETIME , obj -> m_Time -#endif // wxUSE_DATETIME +#endif // wxUSE_DATETIME ); } else return NULL; @@ -158,7 +156,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) @@ -166,10 +163,10 @@ bool wxMemoryFSHandlerBase::CheckHash(const wxString& filename) wxString s; s.Printf(_("Memory VFS already contains file '%s'!"), filename.c_str()); wxLogError(s); - return FALSE; + return false; } else - return TRUE; + return true; } @@ -207,7 +204,9 @@ bool wxMemoryFSHandlerBase::CheckHash(const wxString& filename) #if wxUSE_IMAGE /*static*/ void -wxMemoryFSHandler::AddFile(const wxString& filename, wxImage& image, long type) +wxMemoryFSHandler::AddFile(const wxString& filename, + const wxImage& image, + long type) { if (!CheckHash(filename)) return; @@ -222,15 +221,21 @@ wxMemoryFSHandler::AddFile(const wxString& filename, wxImage& image, long type) wxLogError(s); } } -#endif // wxUSE_IMAGE -/*static*/ void wxMemoryFSHandler::AddFile(const wxString& filename, const wxBitmap& bitmap, long type) +/*static*/ void +wxMemoryFSHandler::AddFile(const wxString& filename, + const wxBitmap& bitmap, + long type) { +#if !defined(__WXMSW__) || wxUSE_WXDIB wxImage img = bitmap.ConvertToImage(); AddFile(filename, img, type); +#endif } -#endif +#endif // wxUSE_IMAGE + +#endif // wxUSE_GUI #endif // wxUSE_FILESYSTEM && wxUSE_FS_ZIP