diff options
author | madmaxoft <github@xoft.cz> | 2014-04-02 11:56:10 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-04-02 11:56:10 +0200 |
commit | 3301c5be1ff9d26d3189c031eb28e5f46c9edccd (patch) | |
tree | 58e17295dcfee0c742de82fbd0ca81aded5e18e4 /src/StringCompression.cpp | |
parent | Exported the Base64 encoding and decoding functions to Lua API. (diff) | |
download | cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.tar cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.tar.gz cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.tar.bz2 cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.tar.lz cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.tar.xz cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.tar.zst cuberite-3301c5be1ff9d26d3189c031eb28e5f46c9edccd.zip |
Diffstat (limited to 'src/StringCompression.cpp')
-rw-r--r-- | src/StringCompression.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/StringCompression.cpp b/src/StringCompression.cpp index 5b9a3bb0a..2a85649a1 100644 --- a/src/StringCompression.cpp +++ b/src/StringCompression.cpp @@ -53,7 +53,7 @@ int UncompressString(const char * a_Data, int a_Length, AString & a_Uncompressed -int CompressStringGZIP(const char * a_Data, int a_Length, AString & a_Compressed) +int CompressStringGZIP(const char * a_Data, size_t a_Length, AString & a_Compressed) { // Compress a_Data into a_Compressed using GZIP; return Z_XXX error constants same as zlib's compress2() @@ -83,6 +83,7 @@ int CompressStringGZIP(const char * a_Data, int a_Length, AString & a_Compressed { // Some data has been compressed. Consume the buffer and continue compressing a_Compressed.append(Buffer, sizeof(Buffer) - strm.avail_out); + strm.next_out = (Bytef *)Buffer; strm.avail_out = sizeof(Buffer); if (strm.avail_in == 0) { @@ -116,7 +117,7 @@ int CompressStringGZIP(const char * a_Data, int a_Length, AString & a_Compressed -extern int UncompressStringGZIP(const char * a_Data, int a_Length, AString & a_Uncompressed) +extern int UncompressStringGZIP(const char * a_Data, size_t a_Length, AString & a_Uncompressed) { // Uncompresses a_Data into a_Uncompressed using GZIP; returns Z_OK for success or Z_XXX error constants same as zlib @@ -139,13 +140,14 @@ extern int UncompressStringGZIP(const char * a_Data, int a_Length, AString & a_U for (;;) { - res = inflate(&strm, Z_FINISH); + res = inflate(&strm, Z_NO_FLUSH); switch (res) { case Z_OK: { // Some data has been uncompressed. Consume the buffer and continue uncompressing a_Uncompressed.append(Buffer, sizeof(Buffer) - strm.avail_out); + strm.next_out = (Bytef *)Buffer; strm.avail_out = sizeof(Buffer); if (strm.avail_in == 0) { |