1
0
Fork 0
mirror of https://git.tukaani.org/xz.git synced 2024-04-04 12:36:23 +02:00

Revert a change made in 3b34851de1

that was related to LZMA_MODE_FAST. The original code is slightly
faster although it compresses slightly worse. But since it is fast
mode, it is better to select the faster version.
This commit is contained in:
Lasse Collin 2008-12-27 19:32:20 +02:00
parent 4820f10d0f
commit 050eb14d29

View file

@ -23,17 +23,6 @@
(((big_dist) >> 7) > (small_dist)) (((big_dist) >> 7) > (small_dist))
static inline void
literal(const lzma_coder *restrict coder, const uint8_t *restrict buf,
uint32_t *restrict back_res, uint32_t *restrict len_res)
{
// Try short rep0 instead of always coding it as a literal.
*back_res = *buf == *(buf - coder->reps[0] - 1) ? 0 : UINT32_MAX;
*len_res = 1;
return;
}
extern void extern void
lzma_lzma_optimum_fast(lzma_coder *restrict coder, lzma_mf *restrict mf, lzma_lzma_optimum_fast(lzma_coder *restrict coder, lzma_mf *restrict mf,
uint32_t *restrict back_res, uint32_t *restrict len_res) uint32_t *restrict back_res, uint32_t *restrict len_res)
@ -55,7 +44,8 @@ lzma_lzma_optimum_fast(lzma_coder *restrict coder, lzma_mf *restrict mf,
if (buf_avail < 2) { if (buf_avail < 2) {
// There's not enough input left to encode a match. // There's not enough input left to encode a match.
literal(coder, buf, back_res, len_res); *back_res = UINT32_MAX;
*len_res = 1;
return; return;
} }
@ -137,7 +127,8 @@ lzma_lzma_optimum_fast(lzma_coder *restrict coder, lzma_mf *restrict mf,
} }
if (len_main < 2 || buf_avail <= 2) { if (len_main < 2 || buf_avail <= 2) {
literal(coder, buf, back_res, len_res); *back_res = UINT32_MAX;
*len_res = 1;
return; return;
} }
@ -158,7 +149,8 @@ lzma_lzma_optimum_fast(lzma_coder *restrict coder, lzma_mf *restrict mf,
|| (coder->longest_match_length + 1 >= len_main || (coder->longest_match_length + 1 >= len_main
&& len_main >= 3 && len_main >= 3
&& change_pair(new_dist, back_main))) { && change_pair(new_dist, back_main))) {
literal(coder, buf, back_res, len_res); *back_res = UINT32_MAX;
*len_res = 1;
return; return;
} }
} }
@ -181,7 +173,8 @@ lzma_lzma_optimum_fast(lzma_coder *restrict coder, lzma_mf *restrict mf,
&& buf[len] == buf_back[len]; ++len) ; && buf[len] == buf_back[len]; ++len) ;
if (len >= limit) { if (len >= limit) {
literal(coder, buf - 1, back_res, len_res); *back_res = UINT32_MAX;
*len_res = 1;
return; return;
} }
} }