]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
minor refactoring
authorYann Collet <yann.collet.73@gmail.com>
Tue, 15 Mar 2016 00:33:36 +0000 (01:33 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Tue, 15 Mar 2016 00:33:36 +0000 (01:33 +0100)
lib/zstd_compress.c
lib/zstd_decompress.c

index b1b106b2bdc46d05cc83a3cd25a9f4f8a950bf59..6afcddeb8f5b8cb945db58504b9be0fbaf2c8933 100644 (file)
@@ -2205,19 +2205,20 @@ size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* zc,
     /* Write Frame Header into ctx headerBuffer */
     MEM_writeLE32(zc->headerBuffer, ZSTD_MAGICNUMBER);
     {
+        BYTE* const op = (BYTE*)zc->headerBuffer;
         U32 const fcsSize[4] = { 0, 1, 2, 8 };
         U32 const fcsId = (params.srcSize>0) + (params.srcSize>=256) + (params.srcSize>=65536+256);   /* 0-3 */
         BYTE fdescriptor = (BYTE)(params.windowLog - ZSTD_WINDOWLOG_ABSOLUTEMIN);   /* windowLog : 4 KB - 128 MB */
         fdescriptor |= (BYTE)((params.searchLength==3)<<4);   /* mml : 3-4 */
         fdescriptor |= (BYTE)(fcsId << 6);
-        ((BYTE*)zc->headerBuffer)[4] = fdescriptor;
+        op[4] = fdescriptor;
         switch(fcsId)
         {
             default:   /* impossible */
             case 0 : break;
-            case 1 : ((BYTE*)zc->headerBuffer)[5] = (BYTE)(params.srcSize); break;
-            case 2 : MEM_writeLE16(((BYTE*)zc->headerBuffer)+5, (U16)(params.srcSize-256)); break;
-            case 3 : MEM_writeLE64(((BYTE*)zc->headerBuffer)+5, (U64)(params.srcSize)); break;
+            case 1 : op[5] = (BYTE)(params.srcSize); break;
+            case 2 : MEM_writeLE16(op+5, (U16)(params.srcSize-256)); break;
+            case 3 : MEM_writeLE64(op+5, (U64)(params.srcSize)); break;
         }
         zc->hbSize = ZSTD_frameHeaderSize_min + fcsSize[fcsId];
     }
index 736e0a275e699cf9307c15b11514fa70b780f511..4007541c72426058828513d740007965a24d6677 100644 (file)
@@ -303,39 +303,38 @@ static size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize)
 /** ZSTD_getFrameParams() :
 *   decode Frame Header, or provide expected `srcSize`.
 *   @return : 0, `fparamsPtr` is correctly filled,
-*            >0, not enough srcSize, provide expected `srcSize`,
+*            >0, `srcSize` is too small, result is expected `srcSize`,
 *             or an error code, which can be tested using ZSTD_isError() */
-size_t ZSTD_getFrameParams(ZSTD_frameParams* fparamsPtr, const void* src, size_t srcSize)
+size_t ZSTD_getFrameParams(ZSTD_frameParams* fparamsPtr, const void* src, size_t const srcSize)
 {
     const BYTE* ip = (const BYTE*)src;
-    BYTE frameDesc;
 
     if (srcSize < ZSTD_frameHeaderSize_min) return ZSTD_frameHeaderSize_min;
     if (MEM_readLE32(src) != ZSTD_MAGICNUMBER) return ERROR(prefix_unknown);
 
+    /* ensure there is enough `srcSize` to fully read/decode frame header */
     { size_t const fhsize = ZSTD_frameHeaderSize(src, srcSize);
       if (srcSize < fhsize) return fhsize; }
 
     memset(fparamsPtr, 0, sizeof(*fparamsPtr));
-    frameDesc = ip[4];
-    fparamsPtr->windowLog = (frameDesc & 0xF) + ZSTD_WINDOWLOG_ABSOLUTEMIN;
-    fparamsPtr->mml = (frameDesc & 0x10) ? MINMATCH-1 : MINMATCH;
-    if ((frameDesc & 0x20) != 0) return ERROR(frameParameter_unsupported);   /* reserved 1 bit */
-    switch(frameDesc >> 6)  /* fcsId */
-    {
-        default:   /* impossible */
-        case 0 : fparamsPtr->frameContentSize = 0; break;
-        case 1 : fparamsPtr->frameContentSize = ip[5]; break;
-        case 2 : fparamsPtr->frameContentSize = MEM_readLE16(ip+5)+256; break;
-        case 3 : fparamsPtr->frameContentSize = MEM_readLE64(ip+5); break;
-    }
+    {   BYTE const frameDesc = ip[4];
+        fparamsPtr->windowLog = (frameDesc & 0xF) + ZSTD_WINDOWLOG_ABSOLUTEMIN;
+        fparamsPtr->mml = (frameDesc & 0x10) ? MINMATCH-1 : MINMATCH;
+        if ((frameDesc & 0x20) != 0) return ERROR(frameParameter_unsupported);   /* reserved 1 bit */
+        switch(frameDesc >> 6)  /* fcsId */
+        {
+            default:   /* impossible */
+            case 0 : fparamsPtr->frameContentSize = 0; break;
+            case 1 : fparamsPtr->frameContentSize = ip[5]; break;
+            case 2 : fparamsPtr->frameContentSize = MEM_readLE16(ip+5)+256; break;
+            case 3 : fparamsPtr->frameContentSize = MEM_readLE64(ip+5); break;
+    }   }
     return 0;
 }
 
 
 /** ZSTD_decodeFrameHeader() :
-*   decode Frame Header.
-*   srcSize must be the size provided by ZSTD_decodeFrameHeader_Part1().
+*   `srcSize` must be the size provided by ZSTD_frameHeaderSize().
 *   @return : 0, or an error code, which can be tested using ZSTD_isError() */
 static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* zc, const void* src, size_t srcSize)
 {