]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Removing redundant condition in decompression, making first block rles valid to deocm...
authorBimba Shrestha <bshrestha.msae@gmail.com>
Fri, 6 Sep 2019 17:46:19 +0000 (10:46 -0700)
committerBimba Shrestha <bshrestha.msae@gmail.com>
Fri, 6 Sep 2019 17:46:19 +0000 (10:46 -0700)
lib/compress/zstd_compress.c
lib/compress/zstd_compress_internal.h
programs/fileio.c

index 62cab4ed52e8524ad8c9dc93a0551410f4aeaf73..4ba7798052daeb68522eb162c95e21ad9c804532 100644 (file)
@@ -1314,7 +1314,6 @@ static size_t ZSTD_continueCCtx(ZSTD_CCtx* cctx, ZSTD_CCtx_params params, U64 pl
     cctx->blockState.matchState.cParams = params.cParams;
     cctx->pledgedSrcSizePlusOne = pledgedSrcSize+1;
     cctx->consumedSrcSize = 0;
-    cctx->isFirstBlock = 1;
     cctx->producedCSize = 0;
     if (pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN)
         cctx->appliedParams.fParams.contentSizeFlag = 0;
@@ -1417,7 +1416,6 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
                 (U32)pledgedSrcSize, params.cParams.windowLog);
     assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams)));
 
-    zc->isFirstBlock = 1;
     if (crp == ZSTDcrp_continue) {
         if (ZSTD_equivalentParams(zc->appliedParams, params,
                                   zc->inBuffSize,
@@ -2307,11 +2305,6 @@ static size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc,
             zc->bmi2);
 
     if (frame &&
-        /* We don't want to emit our first block as a RLE even if it qualifies because
-         * doing so will cause the decoder to throw a "should consume all input error."
-         * https://github.com/facebook/zstd/blob/dev/programs/fileio.c#L1723
-         */
-        !zc->isFirstBlock &&
         cSize < rleMaxLength &&
         ZSTD_isRLE(ip, srcSize))
     {
@@ -2416,7 +2409,6 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx,
             op += cSize;
             assert(dstCapacity >= cSize);
             dstCapacity -= cSize;
-            cctx->isFirstBlock = 0;
             DEBUGLOG(5, "ZSTD_compress_frameChunk: adding a block of size %u",
                         (unsigned)cSize);
     }   }
index 3a5c7f2d1b36ae687887e78ef50910277686e01c..6d623cc6be8186beab098b430e880a105a6c1b99 100644 (file)
@@ -238,7 +238,6 @@ struct ZSTD_CCtx_s {
     XXH64_state_t xxhState;
     ZSTD_customMem customMem;
     size_t staticSize;
-    int isFirstBlock;
 
     seqStore_t seqStore;      /* sequences storage ptrs */
     ldmState_t ldmState;      /* long distance matching state */
index 569a410c1a248099eba92e2146e6db9d5dbc9fa2..d63742d47897c426551d46eb6733c98064f77d68 100644 (file)
@@ -1711,11 +1711,6 @@ static unsigned long long FIO_decompressZstdFrame(
         }
 
         if (readSizeHint == 0) break;   /* end of frame */
-        if (inBuff.size != inBuff.pos) {
-            DISPLAYLEVEL(1, "%s : Decoding error (37) : should consume entire input \n",
-                            srcFileName);
-            return FIO_ERROR_FRAME_DECODING;
-        }
 
         /* Fill input buffer */
         {   size_t const toDecode = MIN(readSizeHint, ress->srcBufferSize);  /* support large skippable frames */