Browse Source

Update juce

tags/2018-04-16
falkTX 11 years ago
parent
commit
7038c17522
3 changed files with 14 additions and 12 deletions
  1. +10
    -7
      libs/juce/source/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp
  2. +3
    -4
      libs/juce/source/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h
  3. +1
    -1
      libs/juce/source/modules/juce_core/zip/juce_ZipFile.cpp

+ 10
- 7
libs/juce/source/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp View File

@@ -90,7 +90,7 @@ namespace zlibNamespace
class GZIPDecompressorInputStream::GZIPDecompressHelper
{
public:
GZIPDecompressHelper()
GZIPDecompressHelper (const bool dontWrap)
: finished (true),
needsDictionary (false),
error (true),
@@ -100,7 +100,7 @@ public:
{
using namespace zlibNamespace;
zerostruct (stream);
streamIsValid = (inflateInit2 (&stream, MAX_WBITS + 32 /* auto-detect gzip encoding */) == Z_OK);
streamIsValid = (inflateInit2 (&stream, dontWrap ? -MAX_WBITS : MAX_WBITS) == Z_OK);
finished = error = ! streamIsValid;
}
@@ -172,27 +172,30 @@ private:
//==============================================================================
GZIPDecompressorInputStream::GZIPDecompressorInputStream (InputStream* const source,
const bool deleteSourceWhenDestroyed,
const int64 uncompressedLength)
const bool noWrap_,
const int64 uncompressedStreamLength_)
: sourceStream (source, deleteSourceWhenDestroyed),
uncompressedStreamLength (uncompressedLength),
uncompressedStreamLength (uncompressedStreamLength_),
noWrap (noWrap_),
isEof (false),
activeBufferSize (0),
originalSourcePos (source->getPosition()),
currentPos (0),
buffer ((size_t) GZIPDecompressHelper::gzipDecompBufferSize),
helper (new GZIPDecompressHelper())
helper (new GZIPDecompressHelper (noWrap_))
{
}
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())
helper (new GZIPDecompressHelper (false))
{
}
@@ -275,7 +278,7 @@ bool GZIPDecompressorInputStream::setPosition (int64 newPos)
isEof = false;
activeBufferSize = 0;
currentPos = 0;
helper = new GZIPDecompressHelper();
helper = new GZIPDecompressHelper (noWrap);
sourceStream->setPosition (originalSourcePos);
}


+ 3
- 4
libs/juce/source/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h View File

@@ -57,6 +57,7 @@ public:
*/
GZIPDecompressorInputStream (InputStream* sourceStream,
bool deleteSourceWhenDestroyed,
bool noWrap = false,
int64 uncompressedStreamLength = -1);
/** Creates a decompressor stream.
@@ -79,7 +80,8 @@ public:
private:
//==============================================================================
OptionalScopedPointer<InputStream> sourceStream;
int64 uncompressedStreamLength;
const int64 uncompressedStreamLength;
const bool noWrap;
bool isEof;
int activeBufferSize;
int64 originalSourcePos, currentPos;
@@ -89,9 +91,6 @@ private:
friend struct ContainerDeletePolicy<GZIPDecompressHelper>;
ScopedPointer<GZIPDecompressHelper> 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)
};


+ 1
- 1
libs/juce/source/modules/juce_core/zip/juce_ZipFile.cpp View File

@@ -298,7 +298,7 @@ InputStream* ZipFile::createStreamForEntry (const int index)
if (zei->compressed)
{
stream = new GZIPDecompressorInputStream (stream, true, (int64) zei->entry.uncompressedSize);
stream = new GZIPDecompressorInputStream (stream, true, true, (int64) zei->entry.uncompressedSize);
// (much faster to unzip in big blocks using a buffer..)
stream = new BufferedInputStream (stream, 32768, true);


Loading…
Cancel
Save