@ 260915.5

260915.1 · 0bd2c9effe05f0ff0b383c9012582bc18aa1da5f

cleanup xz/lzma limit

cleaner code for #566 with constant limit

reading declarations

Changes to src/zstream.hpp. All files

src/zstream.hpp

@@ -524,8 +524,7 @@ class zstreambuf : public std::streambuf {         lzma_strm_->avail_in = zlen_ - zcur_;          // initialize lzma decompress-        uint64_t memlimit = 100 * 1024 * 1024; // 100 MB: files compressed with 'xz -9' require 65 MB to decompress-        lzma_ret ret = lzma_auto_decoder(lzma_strm_, memlimit, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED);+        lzma_ret ret = lzma_auto_decoder(lzma_strm_, XZ::MEMLIMIT, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED);         if (ret != LZMA_OK)         {           cannot_decompress(pathname_, "lzma_auto_decoder failed");@@ -1230,8 +1229,7 @@ class zstreambuf : public std::streambuf {       try       {         xzfile_ = new XZ();-        uint64_t memlimit = 100 * 1024 * 1024; // 100 MB: files compressed with 'xz -9' require 65 MB to decompress-        lzma_ret ret = lzma_auto_decoder(&xzfile_->strm, memlimit, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED);+        lzma_ret ret = lzma_auto_decoder(&xzfile_->strm, XZ::MEMLIMIT, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED);         if (ret != LZMA_OK)         {           warning("lzma_stream_decoder failed", pathname);@@ -1549,8 +1547,7 @@ class zstreambuf : public std::streambuf {                 xzfile_ = new XZ();                 xzfile_->strm.next_in  = buf_;                 xzfile_->strm.avail_in = 6;-                uint64_t memlimit = 100 * 1024 * 1024; // 100 MB: files compressed with 'xz -9' require 65 MB to decompress-                lzma_ret ret = lzma_auto_decoder(&xzfile_->strm, memlimit, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED);+                lzma_ret ret = lzma_auto_decoder(&xzfile_->strm, XZ::MEMLIMIT, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED);                 if (ret != LZMA_OK)                 {                   warning("lzma_stream_decoder failed", pathname);@@ -1842,6 +1839,8 @@ class zstreambuf : public std::streambuf {       lzma_end(&strm);     } +    static const uint64_t MEMLIMIT = 100 * 1024 * 1024; // 100 MB: files compressed with 'xz -9' require 65 MB to decompress+     lzma_stream   strm;     unsigned char zbuf[Z_BUF_LEN];     size_t        zlen;