]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
set the lower bits of frame header descriptor if dictionary is needed
authorPaul Cruz <paulcruz74@fb.com>
Fri, 9 Jun 2017 00:11:33 +0000 (17:11 -0700)
committerPaul Cruz <paulcruz74@fb.com>
Fri, 9 Jun 2017 00:11:33 +0000 (17:11 -0700)
tests/decodecorpus.c

index 8f2e652cd226ca582e0189193b3d684421e55d43..502ea33390f87b06b0b73d1514f66b57ad74d7fb 100644 (file)
@@ -240,7 +240,7 @@ struct {
 } opts; /* advanced options on generation */
 
 /* Generate and write a random frame header */
-static void writeFrameHeader(U32* seed, frame_t* frame)
+static void writeFrameHeader(U32* seed, frame_t* frame, int genDict)
 {
     BYTE* const op = frame->data;
     size_t pos = 0;
@@ -308,6 +308,8 @@ static void writeFrameHeader(U32* seed, frame_t* frame)
     {
         BYTE const frameHeaderDescriptor =
                 (BYTE) ((fcsCode << 6) | (singleSegment << 5) | (1 << 2));
+        if(genDict)
+            frameHeaderDescriptor += 3; /* set lower bits for dictionary ID */
         op[pos++] = frameHeaderDescriptor;
     }
 
@@ -1126,8 +1128,8 @@ static U32 generateFrame(U32 seed, frame_t* fr, int genDict, size_t dictSize)
     /* generate a complete frame */
     DISPLAYLEVEL(1, "frame seed: %u\n", seed);
     initFrame(fr);
-    
-    writeFrameHeader(&seed, fr);
+
+    writeFrameHeader(&seed, fr, genDict);
     writeBlocks(&seed, fr);
     writeChecksum(fr);