From 2890284f6772d9bd2d6a48a1199da1e7f1d76b08 Mon Sep 17 00:00:00 2001 From: Tino Reichardt Date: Tue, 2 Jun 2020 00:46:38 +0200 Subject: [PATCH] Fix #130 - incorrect progress number with zstd --- CPP/7zip/Compress/ZstdEncoder.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CPP/7zip/Compress/ZstdEncoder.cpp b/CPP/7zip/Compress/ZstdEncoder.cpp index 30ce0e4f..8f9eae88 100644 --- a/CPP/7zip/Compress/ZstdEncoder.cpp +++ b/CPP/7zip/Compress/ZstdEncoder.cpp @@ -1,7 +1,5 @@ // (C) 2016 - 2020 Tino Reichardt -#define DEBUG 0 - #if 0 #include #endif @@ -371,7 +369,7 @@ STDMETHODIMP CEncoder::Code(ISequentialInStream *inStream, } } -#if DEBUG +#if 0 printf("err=%u ", (unsigned)err); printf("srcSize=%u ", (unsigned)srcSize); printf("todo=%u\n", ZSTD_todo); @@ -379,6 +377,8 @@ STDMETHODIMP CEncoder::Code(ISequentialInStream *inStream, printf("inBuff.pos=%u\n", (unsigned)inBuff.pos); printf("outBuff.size=%u ", (unsigned)outBuff.size); printf("outBuff.pos=%u\n\n", (unsigned)outBuff.pos); + printf("_processedIn=%u ", (unsigned)_processedIn); + printf("_processedOut=%u\n", (unsigned)_processedOut); fflush(stdout); #endif @@ -386,9 +386,11 @@ STDMETHODIMP CEncoder::Code(ISequentialInStream *inStream, if (outBuff.pos) { RINOK(WriteStream(outStream, _dstBuf, outBuff.pos)); _processedOut += outBuff.pos; - RINOK(progress->SetRatioInfo(&_processedIn, &_processedOut)); } + if (progress) + RINOK(progress->SetRatioInfo(&_processedIn, &_processedOut)); + /* done */ if (ZSTD_todo == ZSTD_e_end && err == 0) return S_OK;