BYTE* matchLength;
BYTE* dumpsStart;
BYTE* dumps;
- BYTE* matchLengthFreq;
- BYTE* litLengthFreq;
- BYTE* litFreq;
- BYTE* offCodeFreq;
+ U32* matchLengthFreq;
+ U32* litLengthFreq;
+ U32* litFreq;
+ U32* offCodeFreq;
U32 matchLengthSum;
U32 litLengthSum;
U32 litSum;
ssPtr->litSum = (1<<Litbits);
ssPtr->offCodeSum = (1<<Offbits);
- memset(ssPtr->litFreq, 1, (1<<Litbits));
- memset(ssPtr->litLengthFreq, 1, (1<<LLbits));
- memset(ssPtr->matchLengthFreq, 1, (1<<MLbits));
- memset(ssPtr->offCodeFreq, 1, (1<<Offbits));
+ for (int i=0; i<=MaxLit; i++)
+ ssPtr->litFreq[i] = 1;
+ for (int i=0; i<=MaxLL; i++)
+ ssPtr->litLengthFreq[i] = 1;
+ for (int i=0; i<=MaxML; i++)
+ ssPtr->matchLengthFreq[i] = 1;
+ for (int i=0; i<=MaxOff; i++)
+ ssPtr->offCodeFreq[i] = 1;
}
/* reserve table memory */
const U32 contentLog = (params.strategy == ZSTD_fast) ? 1 : params.contentLog;
const size_t tableSpace = ((1 << contentLog) + (1 << params.hashLog)) * sizeof(U32);
- const size_t neededSpace = tableSpace + (256*sizeof(U32)) + (3*blockSize) + (1<<MLbits) + (1<<LLbits) + (1<<Offbits) + (1<<Litbits);
+ const size_t neededSpace = tableSpace + (256*sizeof(U32)) + (3*blockSize) + ((1<<MLbits) + (1<<LLbits) + (1<<Offbits) + (1<<Litbits))*sizeof(U32);
if (zc->workSpaceSize < neededSpace) {
free(zc->workSpace);
zc->workSpace = malloc(neededSpace);
zc->seqStore.litLengthStart = zc->seqStore.litStart + blockSize;
zc->seqStore.matchLengthStart = zc->seqStore.litLengthStart + (blockSize>>2);
zc->seqStore.dumpsStart = zc->seqStore.matchLengthStart + (blockSize>>2);
- zc->seqStore.litFreq = zc->seqStore.dumpsStart + (blockSize>>2);
+ zc->seqStore.litFreq = (U32*) (zc->seqStore.dumpsStart + (blockSize>>2));
zc->seqStore.litLengthFreq = zc->seqStore.litFreq + (1<<Litbits);
zc->seqStore.matchLengthFreq = zc->seqStore.litLengthFreq + (1<<LLbits);
zc->seqStore.offCodeFreq = zc->seqStore.matchLengthFreq + (1<<MLbits);
- // zc->seqStore.XXX = zc->seqStore.offCodeFreq + (1<<Offbits);
+ // zc->seqStore.XXX = zc->seqStore.offCodeFreq + (1<<Offbits)*sizeof(U32);
zc->hbSize = 0;
zc->stage = 0;