Improve documentation of seqStore_t

This commit is contained in:
senhuang42
2020-10-27 10:50:22 -04:00
parent 96b0ff7886
commit 9171f920cd
3 changed files with 23 additions and 22 deletions
+10 -5
View File
@@ -341,23 +341,28 @@ MEM_STATIC size_t ZSTD_limitCopy(void* dst, size_t dstCapacity, const void* src,
* Private declarations * Private declarations
*********************************************/ *********************************************/
typedef struct seqDef_s { typedef struct seqDef_s {
U32 offset; U32 offset; /* Offset code of the sequence */
U16 litLength; U16 litLength;
U16 matchLength; U16 matchLength;
} seqDef; } seqDef;
typedef struct { typedef struct {
seqDef* sequencesStart; seqDef* sequencesStart;
seqDef* sequences; seqDef* sequences; /* ptr to end of sequences */
BYTE* litStart; BYTE* litStart;
BYTE* lit; BYTE* lit; /* ptr to end of literals */
BYTE* llCode; BYTE* llCode;
BYTE* mlCode; BYTE* mlCode;
BYTE* ofCode; BYTE* ofCode;
size_t maxNbSeq; size_t maxNbSeq;
size_t maxNbLit; size_t maxNbLit;
U32 longLengthID; /* 0 == no longLength; 1 == Lit.longLength; 2 == Match.longLength; */
U32 longLengthPos; /* longLengthPos and longLengthID to allow us to represent either a single litLength or matchLength
* in the seqStore that has a value larger than U16 (if it exists). To do so, we increment
* the existing value of the literal or match by 0x10000.
*/
U32 longLengthID; /* 0 == no longLength; 1 == Represent the long literal; 2 == Represent the long match; */
U32 longLengthPos; /* Index of the sequence to apply long length modification to */
} seqStore_t; } seqStore_t;
typedef struct { typedef struct {
-4
View File
@@ -2455,10 +2455,6 @@ static void ZSTD_copyBlockSequences(ZSTD_CCtx* zc)
outSeqs[i].litLength = seqStoreSeqs[i].litLength; outSeqs[i].litLength = seqStoreSeqs[i].litLength;
outSeqs[i].matchLength = seqStoreSeqs[i].matchLength + MINMATCH; outSeqs[i].matchLength = seqStoreSeqs[i].matchLength + MINMATCH;
/* matchLength and litLength are stored with U16. longLengthPos
* and longLengthID to allow us to represent a single litLength or matchLength
* in the seqStore that has a value larger than U16 (if it exists).
*/
if (i == seqStore->longLengthPos) { if (i == seqStore->longLengthPos) {
if (seqStore->longLengthID == 1) { if (seqStore->longLengthID == 1) {
outSeqs[i].litLength += 0x10000; outSeqs[i].litLength += 0x10000;
+13 -13
View File
@@ -1115,24 +1115,24 @@ typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params;
typedef struct { typedef struct {
unsigned int offset; /* The offset of the match. unsigned int offset; /* The offset of the match.
* If == 0, then represents a block of literals, determined by litLength * If == 0, then represents a block of literals, determined by litLength
*/ */
unsigned int litLength; /* Literal length */ unsigned int litLength; /* Literal length */
unsigned int matchLength; /* Match length. */ unsigned int matchLength; /* Match length. */
unsigned int rep; /* Represents which repeat offset is used. Ranges from [0, 3]. unsigned int rep; /* Represents which repeat offset is used. Ranges from [0, 3].
* If rep == 0, then this sequence does not contain a repeat offset. * If rep == 0, then this sequence does not contain a repeat offset.
* Otherwise: * Otherwise:
* If litLength != 0: * If litLength != 0:
* rep == 1 --> offset == repeat offset 1 * rep == 1 --> offset == repeat offset 1
* rep == 2 --> offset == repeat offset 2 * rep == 2 --> offset == repeat offset 2
* rep == 3 --> offset == repeat offset 3 * rep == 3 --> offset == repeat offset 3
* If litLength == 0: * If litLength == 0:
* rep == 1 --> offset == repeat offset 2 * rep == 1 --> offset == repeat offset 2
* rep == 2 --> offset == repeat offset 3 * rep == 2 --> offset == repeat offset 3
* rep == 3 --> offset == repeat offset 1 - 1 * rep == 3 --> offset == repeat offset 1 - 1
*/ */
} ZSTD_Sequence; } ZSTD_Sequence;
typedef struct { typedef struct {