line |
true |
false |
branch |
108
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
|
0 |
0 |
while (idx < target) { |
111
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
|
0 |
0 |
if (delta>MAX_DISTANCE) delta = MAX_DISTANCE; |
141
|
0 |
0 |
while (likely(ip < iEnd-(sizeof(pattern)-1))) { |
143
|
0 |
0 |
if (!diff) { ip+=sizeof(pattern); continue; } |
148
|
0 |
0 |
if (LZ4_isLittleEndian()) { |
150
|
0 |
0 |
while ((ip
|
|
0 |
0 |
while ((ip
|
155
|
0 |
0 |
while (ip < iEnd) { |
157
|
0 |
0 |
if (*ip != byte) break; |
172
|
0 |
0 |
while (likely(ip >= iLow+4)) { |
173
|
0 |
0 |
if (LZ4_read32(ip-4) != pattern) break; |
177
|
0 |
0 |
while (likely(ip>iLow)) { |
178
|
0 |
0 |
if (ip[-1] != *bytePtr) break; |
202
|
0 |
0 |
const U32 lowLimit = (hc4->lowLimit + 64 KB > (U32)(ip-base)) ? hc4->lowLimit : (U32)(ip - base) - MAX_DISTANCE; |
|
0 |
0 |
const U32 lowLimit = (hc4->lowLimit + 64 KB > (U32)(ip-base)) ? hc4->lowLimit : (U32)(ip - base) - MAX_DISTANCE; |
|
0 |
0 |
const U32 lowLimit = (hc4->lowLimit + 64 KB > (U32)(ip-base)) ? hc4->lowLimit : (U32)(ip - base) - MAX_DISTANCE; |
|
0 |
0 |
const U32 lowLimit = (hc4->lowLimit + 64 KB > (U32)(ip-base)) ? hc4->lowLimit : (U32)(ip - base) - MAX_DISTANCE; |
|
0 |
0 |
const U32 lowLimit = (hc4->lowLimit + 64 KB > (U32)(ip-base)) ? hc4->lowLimit : (U32)(ip - base) - MAX_DISTANCE; |
|
0 |
0 |
const U32 lowLimit = (hc4->lowLimit + 64 KB > (U32)(ip-base)) ? hc4->lowLimit : (U32)(ip - base) - MAX_DISTANCE; |
218
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
|
0 |
0 |
while ((matchIndex>=lowLimit) && (nbAttempts)) { |
221
|
0 |
0 |
if (matchIndex >= dictLimit) { |
|
0 |
0 |
if (matchIndex >= dictLimit) { |
|
0 |
0 |
if (matchIndex >= dictLimit) { |
|
0 |
0 |
if (matchIndex >= dictLimit) { |
|
0 |
0 |
if (matchIndex >= dictLimit) { |
|
0 |
0 |
if (matchIndex >= dictLimit) { |
223
|
0 |
0 |
if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { |
|
0 |
0 |
if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { |
|
0 |
0 |
if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { |
|
0 |
0 |
if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { |
|
0 |
0 |
if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { |
|
0 |
0 |
if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { |
224
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
231
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
232
|
0 |
0 |
&& (matchPtr+back > lowPrefixPtr) |
|
0 |
0 |
&& (matchPtr+back > lowPrefixPtr) |
|
0 |
0 |
&& (matchPtr+back > lowPrefixPtr) |
|
0 |
0 |
&& (matchPtr+back > lowPrefixPtr) |
|
0 |
0 |
&& (matchPtr+back > lowPrefixPtr) |
|
0 |
0 |
&& (matchPtr+back > lowPrefixPtr) |
233
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) { |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) { |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) { |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) { |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) { |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) { |
239
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
247
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { |
251
|
0 |
0 |
if (vLimit > iHighLimit) vLimit = iHighLimit; |
|
0 |
0 |
if (vLimit > iHighLimit) vLimit = iHighLimit; |
|
0 |
0 |
if (vLimit > iHighLimit) vLimit = iHighLimit; |
|
0 |
0 |
if (vLimit > iHighLimit) vLimit = iHighLimit; |
|
0 |
0 |
if (vLimit > iHighLimit) vLimit = iHighLimit; |
|
0 |
0 |
if (vLimit > iHighLimit) vLimit = iHighLimit; |
253
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
|
0 |
0 |
if ((ip+mlt == vLimit) && (vLimit < iHighLimit)) |
255
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
|
0 |
0 |
while ( (ip+back > iLowLimit) |
256
|
0 |
0 |
&& (matchIndex+back > lowLimit) |
|
0 |
0 |
&& (matchIndex+back > lowLimit) |
|
0 |
0 |
&& (matchIndex+back > lowLimit) |
|
0 |
0 |
&& (matchIndex+back > lowLimit) |
|
0 |
0 |
&& (matchIndex+back > lowLimit) |
|
0 |
0 |
&& (matchIndex+back > lowLimit) |
257
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) |
|
0 |
0 |
&& (ip[back-1] == matchPtr[back-1])) |
260
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
|
0 |
0 |
if (mlt > longest) { |
268
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
|
0 |
0 |
if (patternAnalysis && nextOffset==1) { |
270
|
0 |
0 |
if (repeat == rep_untested) { |
|
0 |
0 |
if (repeat == rep_untested) { |
|
0 |
0 |
if (repeat == rep_untested) { |
|
0 |
0 |
if (repeat == rep_untested) { |
|
0 |
0 |
if (repeat == rep_untested) { |
|
0 |
0 |
if (repeat == rep_untested) { |
271
|
0 |
0 |
if ( ((pattern & 0xFFFF) == (pattern >> 16)) |
|
0 |
0 |
if ( ((pattern & 0xFFFF) == (pattern >> 16)) |
|
0 |
0 |
if ( ((pattern & 0xFFFF) == (pattern >> 16)) |
|
0 |
0 |
if ( ((pattern & 0xFFFF) == (pattern >> 16)) |
|
0 |
0 |
if ( ((pattern & 0xFFFF) == (pattern >> 16)) |
|
0 |
0 |
if ( ((pattern & 0xFFFF) == (pattern >> 16)) |
278
|
0 |
0 |
if ( (repeat == rep_confirmed) |
|
0 |
0 |
if ( (repeat == rep_confirmed) |
|
0 |
0 |
if ( (repeat == rep_confirmed) |
|
0 |
0 |
if ( (repeat == rep_confirmed) |
|
0 |
0 |
if ( (repeat == rep_confirmed) |
|
0 |
0 |
if ( (repeat == rep_confirmed) |
279
|
0 |
0 |
&& (matchIndex >= dictLimit) ) { /* same segment only */ |
|
0 |
0 |
&& (matchIndex >= dictLimit) ) { /* same segment only */ |
|
0 |
0 |
&& (matchIndex >= dictLimit) ) { /* same segment only */ |
|
0 |
0 |
&& (matchIndex >= dictLimit) ) { /* same segment only */ |
|
0 |
0 |
&& (matchIndex >= dictLimit) ) { /* same segment only */ |
|
0 |
0 |
&& (matchIndex >= dictLimit) ) { /* same segment only */ |
281
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { /* good candidate */ |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { /* good candidate */ |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { /* good candidate */ |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { /* good candidate */ |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { /* good candidate */ |
|
0 |
0 |
if (LZ4_read32(matchPtr) == pattern) { /* good candidate */ |
283
|
0 |
0 |
const BYTE* const maxLowPtr = (lowPrefixPtr + MAX_DISTANCE >= ip) ? lowPrefixPtr : ip - MAX_DISTANCE; |
|
0 |
0 |
const BYTE* const maxLowPtr = (lowPrefixPtr + MAX_DISTANCE >= ip) ? lowPrefixPtr : ip - MAX_DISTANCE; |
|
0 |
0 |
const BYTE* const maxLowPtr = (lowPrefixPtr + MAX_DISTANCE >= ip) ? lowPrefixPtr : ip - MAX_DISTANCE; |
|
0 |
0 |
const BYTE* const maxLowPtr = (lowPrefixPtr + MAX_DISTANCE >= ip) ? lowPrefixPtr : ip - MAX_DISTANCE; |
|
0 |
0 |
const BYTE* const maxLowPtr = (lowPrefixPtr + MAX_DISTANCE >= ip) ? lowPrefixPtr : ip - MAX_DISTANCE; |
|
0 |
0 |
const BYTE* const maxLowPtr = (lowPrefixPtr + MAX_DISTANCE >= ip) ? lowPrefixPtr : ip - MAX_DISTANCE; |
288
|
0 |
0 |
&& (forwardPatternLength <= srcPatternLength) ) { /* haven't reached this position yet */ |
|
0 |
0 |
&& (forwardPatternLength <= srcPatternLength) ) { /* haven't reached this position yet */ |
|
0 |
0 |
&& (forwardPatternLength <= srcPatternLength) ) { /* haven't reached this position yet */ |
|
0 |
0 |
&& (forwardPatternLength <= srcPatternLength) ) { /* haven't reached this position yet */ |
|
0 |
0 |
&& (forwardPatternLength <= srcPatternLength) ) { /* haven't reached this position yet */ |
|
0 |
0 |
&& (forwardPatternLength <= srcPatternLength) ) { /* haven't reached this position yet */ |
355
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && ((*op + (length >> 8) + length + (2 + 1 + LASTLITERALS)) > oend)) return 1; /* Check output limit */ |
356
|
0 |
0 |
if (length >= RUN_MASK) { |
|
0 |
0 |
if (length >= RUN_MASK) { |
|
0 |
0 |
if (length >= RUN_MASK) { |
|
0 |
0 |
if (length >= RUN_MASK) { |
|
0 |
0 |
if (length >= RUN_MASK) { |
|
0 |
0 |
if (length >= RUN_MASK) { |
|
0 |
0 |
if (length >= RUN_MASK) { |
359
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
|
0 |
0 |
for(; len >= 255 ; len -= 255) *(*op)++ = 255; |
375
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
|
0 |
0 |
if ((limit) && (*op + (length >> 8) + (1 + LASTLITERALS) > oend)) return 1; /* Check output limit */ |
376
|
0 |
0 |
if (length >= ML_MASK) { |
|
0 |
0 |
if (length >= ML_MASK) { |
|
0 |
0 |
if (length >= ML_MASK) { |
|
0 |
0 |
if (length >= ML_MASK) { |
|
0 |
0 |
if (length >= ML_MASK) { |
|
0 |
0 |
if (length >= ML_MASK) { |
|
0 |
0 |
if (length >= ML_MASK) { |
379
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
|
0 |
0 |
for(; length >= 510 ; length -= 510) { *(*op)++ = 255; *(*op)++ = 255; } |
380
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
|
0 |
0 |
if (length >= 255) { length -= 255; *(*op)++ = 255; } |
431
|
0 |
0 |
if (limit == limitedDestSize) oend -= LASTLITERALS; /* Hack for support LZ4 format restriction */ |
432
|
0 |
0 |
if (inputSize < LZ4_minLength) goto _last_literals; /* Input too small, no compression (all literals) */ |
435
|
0 |
0 |
while (ip < mflimit) { |
437
|
0 |
0 |
if (ml
|
445
|
0 |
0 |
if (ip+ml < mflimit) |
452
|
0 |
0 |
if (ml2 == ml) { /* No better match */ |
454
|
0 |
0 |
if (LZ4HC_encodeSequence(&ip, &op, &anchor, ml, ref, limit, oend)) goto _dest_overflow; |
458
|
0 |
0 |
if (start0 < ip) { |
459
|
0 |
0 |
if (start2 < ip + ml0) { /* empirical */ |
467
|
0 |
0 |
if ((start2 - ip) < 3) { /* First Match too small : removed */ |
478
|
0 |
0 |
if ((start2 - ip) < OPTIMAL_ML) { |
481
|
0 |
0 |
if (new_ml > OPTIMAL_ML) new_ml = OPTIMAL_ML; |
482
|
0 |
0 |
if (ip+new_ml > start2 + ml2 - MINMATCH) new_ml = (int)(start2 - ip) + ml2 - MINMATCH; |
484
|
0 |
0 |
if (correction > 0) { |
492
|
0 |
0 |
if (start2 + ml2 < mflimit) |
499
|
0 |
0 |
if (ml3 == ml2) { /* No better match : 2 sequences to encode */ |
501
|
0 |
0 |
if (start2 < ip+ml) ml = (int)(start2 - ip); |
504
|
0 |
0 |
if (LZ4HC_encodeSequence(&ip, &op, &anchor, ml, ref, limit, oend)) goto _dest_overflow; |
507
|
0 |
0 |
if (LZ4HC_encodeSequence(&ip, &op, &anchor, ml2, ref2, limit, oend)) goto _dest_overflow; |
511
|
0 |
0 |
if (start3 < ip+ml+3) { /* Not enough space for match 2 : remove it */ |
512
|
0 |
0 |
if (start3 >= (ip+ml)) { /* can write Seq1 immediately ==> Seq2 is removed, so Seq3 becomes Seq1 */ |
513
|
0 |
0 |
if (start2 < ip+ml) { |
518
|
0 |
0 |
if (ml2 < MINMATCH) { |
526
|
0 |
0 |
if (LZ4HC_encodeSequence(&ip, &op, &anchor, ml, ref, limit, oend)) goto _dest_overflow; |
547
|
0 |
0 |
if (start2 < ip+ml) { |
548
|
0 |
0 |
if ((start2 - ip) < (int)ML_MASK) { |
550
|
0 |
0 |
if (ml > OPTIMAL_ML) ml = OPTIMAL_ML; |
551
|
0 |
0 |
if (ip + ml > start2 + ml2 - MINMATCH) ml = (int)(start2 - ip) + ml2 - MINMATCH; |
553
|
0 |
0 |
if (correction > 0) { |
563
|
0 |
0 |
if (LZ4HC_encodeSequence(&ip, &op, &anchor, ml, ref, limit, oend)) goto _dest_overflow; |
581
|
0 |
0 |
if (limit == limitedDestSize) oend += LASTLITERALS; /* restore correct value */ |
582
|
0 |
0 |
if (limit && (op + totalSize > oend)) { |
|
0 |
0 |
if (limit && (op + totalSize > oend)) { |
583
|
0 |
0 |
if (limit == limitedOutput) return 0; /* Check output limit */ |
591
|
0 |
0 |
if (lastRunSize >= RUN_MASK) { |
594
|
0 |
0 |
for(; accumulator >= 255 ; accumulator -= 255) *op++ = 255; |
608
|
0 |
0 |
if (limit == limitedDestSize) { |
648
|
0 |
0 |
if (limit == limitedDestSize && dstCapacity < 1) return 0; /* Impossible to store anything */ |
|
0 |
0 |
if (limit == limitedDestSize && dstCapacity < 1) return 0; /* Impossible to store anything */ |
649
|
0 |
0 |
if ((U32)*srcSizePtr > (U32)LZ4_MAX_INPUT_SIZE) return 0; /* Unsupported input size (too large or negative) */ |
652
|
0 |
0 |
if (cLevel < 1) cLevel = LZ4HC_CLEVEL_DEFAULT; /* note : convention is different from lz4frame, maybe something to review */ |
657
|
0 |
0 |
if (cParam.strat == lz4hc) |
675
|
0 |
0 |
if (((size_t)(state)&(sizeof(void*)-1)) != 0) return 0; /* Error : state is not aligned for pointers (32 or 64 bits) */ |
677
|
0 |
0 |
if (dstCapacity < LZ4_compressBound(srcSize)) |
715
|
0 |
0 |
if (!LZ4_streamHCPtr) return 0; /* support free on NULL */ |
731
|
0 |
0 |
if (compressionLevel < 1) compressionLevel = 1; |
732
|
0 |
0 |
if (compressionLevel > LZ4HC_CLEVEL_MAX) compressionLevel = LZ4HC_CLEVEL_MAX; |
739
|
0 |
0 |
if (dictSize > 64 KB) { |
745
|
0 |
0 |
if (dictSize >= 4) LZ4HC_Insert (ctxPtr, ctxPtr->end-3); |
754
|
0 |
0 |
if (ctxPtr->end >= ctxPtr->base + 4) LZ4HC_Insert (ctxPtr, ctxPtr->end-3); /* Referencing remaining dictionary content */ |
772
|
0 |
0 |
if (ctxPtr->base == NULL) LZ4HC_init (ctxPtr, (const BYTE*) src); |
775
|
0 |
0 |
if ((size_t)(ctxPtr->end - ctxPtr->base) > 2 GB) { |
777
|
0 |
0 |
if (dictSize > 64 KB) dictSize = 64 KB; |
782
|
0 |
0 |
if ((const BYTE*)src != ctxPtr->end) LZ4HC_setExternalDict(ctxPtr, (const BYTE*)src); |
788
|
0 |
0 |
if ((sourceEnd > dictBegin) && ((const BYTE*)src < dictEnd)) { |
|
0 |
0 |
if ((sourceEnd > dictBegin) && ((const BYTE*)src < dictEnd)) { |
789
|
0 |
0 |
if (sourceEnd > dictEnd) sourceEnd = dictEnd; |
791
|
0 |
0 |
if (ctxPtr->dictLimit - ctxPtr->lowLimit < 4) ctxPtr->lowLimit = ctxPtr->dictLimit; |
800
|
0 |
0 |
if (dstCapacity < LZ4_compressBound(srcSize)) |
819
|
0 |
0 |
if (dictSize > 64 KB) dictSize = 64 KB; |
820
|
0 |
0 |
if (dictSize < 4) dictSize = 0; |
821
|
0 |
0 |
if (dictSize > prefixSize) dictSize = prefixSize; |
828
|
0 |
0 |
if (streamPtr->nextToUpdate < streamPtr->dictLimit) streamPtr->nextToUpdate = streamPtr->dictLimit; |
857
|
0 |
0 |
if ((((size_t)state) & (sizeof(void*)-1)) != 0) return 1; /* Error : pointer is not aligned for pointer (32 or 64 bits) */ |
866
|
0 |
0 |
if (hc4 == NULL) return NULL; /* not enough memory */ |
873
|
0 |
0 |
if (!LZ4HC_Data) return 0; /* support free on NULL */ |