Skip to content

Commit fdfa3b8

Browse files
authored
Merge pull request #4772 from uarif1/elide32bit
compress: Elide long-offset path on 64-bit
2 parents ee650ef + ae70342 commit fdfa3b8

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

‎lib/compress/zstd_compress_sequences.c‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ ZSTD_encodeSequences_body(
301301
FSE_CState_t stateOffsetBits;
302302
FSE_CState_t stateLitLength;
303303

304+
assert(MEM_32bits() || !longOffsets);
304305
RETURN_ERROR_IF(
305306
ERR_isError(BIT_initCStream(&blockStream, dst, dstCapacity)),
306307
dstSize_tooSmall, "not enough space remaining");
@@ -316,7 +317,7 @@ ZSTD_encodeSequences_body(
316317
if (MEM_32bits()) BIT_flushBits(&blockStream);
317318
BIT_addBits(&blockStream, sequences[nbSeq-1].mlBase, ML_bits[mlCodeTable[nbSeq-1]]);
318319
if (MEM_32bits()) BIT_flushBits(&blockStream);
319-
if (longOffsets) {
320+
if (MEM_32bits() && longOffsets) {
320321
U32 const ofBits = ofCodeTable[nbSeq-1];
321322
unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1);
322323
if (extraBits) {
@@ -354,7 +355,7 @@ ZSTD_encodeSequences_body(
354355
if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream);
355356
BIT_addBits(&blockStream, sequences[n].mlBase, mlBits);
356357
if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream);
357-
if (longOffsets) {
358+
if (MEM_32bits() && longOffsets) {
358359
unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1);
359360
if (extraBits) {
360361
BIT_addBits(&blockStream, sequences[n].offBase, extraBits);

0 commit comments

Comments
 (0)