X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Flcpit_matchfinder.c;h=8b9ffd9d882fa5e9e1559b3a20222561378f0dd3;hp=3041e3fa663e3dfa1f8e2b33f9c3d8817c4c170e;hb=4a20aae0dd8469a352517a0b107416ffa99ccc55;hpb=eb3e3b72db23ecaa7789a807afeb9577962653fe diff --git a/src/lcpit_matchfinder.c b/src/lcpit_matchfinder.c index 3041e3fa..8b9ffd9d 100644 --- a/src/lcpit_matchfinder.c +++ b/src/lcpit_matchfinder.c @@ -1,6 +1,9 @@ /* * lcpit_matchfinder.c * + * A match-finder for Lempel-Ziv compression based on bottom-up construction and + * traversal of the Longest Common Prefix (LCP) interval tree. + * * The following copying information applies to this specific source code file: * * Written in 2014-2015 by Eric Biggers @@ -281,7 +284,7 @@ build_LCPIT(u32 intervals[restrict], u32 pos_data[restrict], const u32 n) * around by just continuing until we get to a link that actually takes us * higher in the tree. This can be described as a lazy-update scheme. */ -static inline u32 +static forceinline u32 lcpit_advance_one_byte(const u32 cur_pos, u32 pos_data[restrict], u32 intervals[restrict], @@ -483,7 +486,7 @@ build_LCPIT_huge(u64 intervals64[restrict], u32 pos_data[restrict], const u32 n) /* Like lcpit_advance_one_byte(), but for buffers larger than * MAX_NORMAL_BUFSIZE. */ -static inline u32 +static forceinline u32 lcpit_advance_one_byte_huge(const u32 cur_pos, u32 pos_data[restrict], u64 intervals64[restrict], @@ -535,14 +538,14 @@ lcpit_advance_one_byte_huge(const u32 cur_pos, return matchptr - matches; } -static inline u64 +static forceinline u64 get_pos_data_size(size_t max_bufsize) { return (u64)max((u64)max_bufsize + PREFETCH_SAFETY, DIVSUFSORT_TMP_LEN) * sizeof(u32); } -static inline u64 +static forceinline u64 get_intervals_size(size_t max_bufsize) { return ((u64)max_bufsize + PREFETCH_SAFETY) *