liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.

This gives a tiny encoder speed improvement. This could have been done
in 2014 after the commit 544aaa3d13 but
it was forgotten.
This commit is contained in:
Lasse Collin 2020-02-21 17:40:02 +02:00
parent 59e6eb4840
commit 43dfe04e62
1 changed files with 10 additions and 6 deletions

View File

@ -636,9 +636,10 @@ helper2(lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf,
uint32_t len_test_2 = len_test + 1;
const uint32_t limit = my_min(buf_avail_full,
len_test_2 + nice_len);
for (; len_test_2 < limit
&& buf[len_test_2] == buf_back[len_test_2];
++len_test_2) ;
// NOTE: len_test_2 may be greater than limit so the call to
// lzma_memcmplen() must be done conditionally.
if (len_test_2 < limit)
len_test_2 = lzma_memcmplen(buf, buf_back, len_test_2, limit);
len_test_2 -= len_test + 1;
@ -732,9 +733,12 @@ helper2(lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf,
const uint32_t limit = my_min(buf_avail_full,
len_test_2 + nice_len);
for (; len_test_2 < limit &&
buf[len_test_2] == buf_back[len_test_2];
++len_test_2) ;
// NOTE: len_test_2 may be greater than limit
// so the call to lzma_memcmplen() must be
// done conditionally.
if (len_test_2 < limit)
len_test_2 = lzma_memcmplen(buf, buf_back,
len_test_2, limit);
len_test_2 -= len_test + 1;