diff --git a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp index 71e0850727..e351f883d2 100644 --- a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp +++ b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp @@ -90,7 +90,7 @@ namespace zlibNamespace class GZIPDecompressorInputStream::GZIPDecompressHelper { public: - GZIPDecompressHelper (const bool dontWrap) + GZIPDecompressHelper() : finished (true), needsDictionary (false), error (true), @@ -100,7 +100,7 @@ public: { using namespace zlibNamespace; zerostruct (stream); - streamIsValid = (inflateInit2 (&stream, dontWrap ? -MAX_WBITS : MAX_WBITS) == Z_OK); + streamIsValid = (inflateInit2 (&stream, MAX_WBITS + 32 /* auto-detect gzip encoding */) == Z_OK); finished = error = ! streamIsValid; } @@ -172,30 +172,27 @@ private: //============================================================================== GZIPDecompressorInputStream::GZIPDecompressorInputStream (InputStream* const source, const bool deleteSourceWhenDestroyed, - const bool noWrap_, - const int64 uncompressedStreamLength_) + const int64 uncompressedLength) : sourceStream (source, deleteSourceWhenDestroyed), - uncompressedStreamLength (uncompressedStreamLength_), - noWrap (noWrap_), + uncompressedStreamLength (uncompressedLength), isEof (false), activeBufferSize (0), originalSourcePos (source->getPosition()), currentPos (0), buffer ((size_t) GZIPDecompressHelper::gzipDecompBufferSize), - helper (new GZIPDecompressHelper (noWrap_)) + helper (new GZIPDecompressHelper()) { } GZIPDecompressorInputStream::GZIPDecompressorInputStream (InputStream& source) : sourceStream (&source, false), uncompressedStreamLength (-1), - noWrap (false), isEof (false), activeBufferSize (0), originalSourcePos (source.getPosition()), currentPos (0), buffer ((size_t) GZIPDecompressHelper::gzipDecompBufferSize), - helper (new GZIPDecompressHelper (false)) + helper (new GZIPDecompressHelper()) { } @@ -278,7 +275,7 @@ bool GZIPDecompressorInputStream::setPosition (int64 newPos) isEof = false; activeBufferSize = 0; currentPos = 0; - helper = new GZIPDecompressHelper (noWrap); + helper = new GZIPDecompressHelper(); sourceStream->setPosition (originalSourcePos); } diff --git a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h index 78a0b77b7f..26d9ac39fa 100644 --- a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h +++ b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h @@ -57,7 +57,6 @@ public: */ GZIPDecompressorInputStream (InputStream* sourceStream, bool deleteSourceWhenDestroyed, - bool noWrap = false, int64 uncompressedStreamLength = -1); /** Creates a decompressor stream. @@ -80,8 +79,7 @@ public: private: //============================================================================== OptionalScopedPointer sourceStream; - const int64 uncompressedStreamLength; - const bool noWrap; + int64 uncompressedStreamLength; bool isEof; int activeBufferSize; int64 originalSourcePos, currentPos; @@ -91,6 +89,9 @@ private: friend struct ContainerDeletePolicy; ScopedPointer helper; + // NB: The old 'noWrap' parameter is no longer needed in the constructor + JUCE_DEPRECATED (GZIPDecompressorInputStream (InputStream*, bool, bool)); + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GZIPDecompressorInputStream) }; diff --git a/modules/juce_core/zip/juce_ZipFile.cpp b/modules/juce_core/zip/juce_ZipFile.cpp index 629443b85e..febf391e1f 100644 --- a/modules/juce_core/zip/juce_ZipFile.cpp +++ b/modules/juce_core/zip/juce_ZipFile.cpp @@ -298,8 +298,7 @@ InputStream* ZipFile::createStreamForEntry (const int index) if (zei->compressed) { - stream = new GZIPDecompressorInputStream (stream, true, true, - zei->entry.uncompressedSize); + stream = new GZIPDecompressorInputStream (stream, true, (int64) zei->entry.uncompressedSize); // (much faster to unzip in big blocks using a buffer..) stream = new BufferedInputStream (stream, 32768, true);