X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b4f4d3dd610a29a7be3c7a5f165520438d0328bb..cc4d5638c66a409e421420ed7110917755a66788:/src/common/fs_arc.cpp diff --git a/src/common/fs_arc.cpp b/src/common/fs_arc.cpp index 0a16addb22..ef1df75f2b 100644 --- a/src/common/fs_arc.cpp +++ b/src/common/fs_arc.cpp @@ -1,9 +1,8 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: fs_arc.cpp +// Name: src/common/fs_arc.cpp // Purpose: wxArchive file system // Author: Vaclav Slavik, Mike Wetherell // Copyright: (c) 1999 Vaclav Slavik, (c) 2006 Mike Wetherell -// CVS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -22,7 +21,7 @@ #include "wx/log.h" #endif -#if WXWIN_COMPATIBILITY_2_6 +#if WXWIN_COMPATIBILITY_2_6 && wxUSE_ZIPSTREAM #include "wx/zipstrm.h" #else #include "wx/archive.h" @@ -135,10 +134,8 @@ wxArchiveFSEntry *wxArchiveFSCacheDataImpl::AddToCache(wxArchiveEntry *entry) void wxArchiveFSCacheDataImpl::CloseStreams() { - delete m_archive; - m_archive = NULL; - delete m_stream; - m_stream = NULL; + wxDELETE(m_archive); + wxDELETE(m_stream); } wxArchiveEntry *wxArchiveFSCacheDataImpl::Get(const wxString& name) @@ -360,7 +357,7 @@ wxFSFile* wxArchiveFSHandler::OpenFile( right = rightPart.GetFullPath(wxPATH_UNIX); } - if (right.GetChar(0) == wxT('/')) right = right.Mid(1); + if (!right.empty() && right.GetChar(0) == wxT('/')) right = right.Mid(1); if (!m_cache) m_cache = new wxArchiveFSCache; @@ -406,14 +403,14 @@ wxFSFile* wxArchiveFSHandler::OpenFile( return NULL; } -#if WXWIN_COMPATIBILITY_2_6 - if (factory->IsKindOf(CLASSINFO(wxZipClassFactory))) +#if WXWIN_COMPATIBILITY_2_6 && wxUSE_ZIPSTREAM + if (wxDynamicCast(factory, wxZipClassFactory)) ((wxZipInputStream*)s)->m_allowSeeking = true; #endif // WXWIN_COMPATIBILITY_2_6 return new wxFSFile(s, key + right, - GetMimeTypeFromExt(location), + wxEmptyString, GetAnchor(location) #if wxUSE_DATETIME , entry->GetDateTime()