mirror of
https://github.com/facebook/zstd.git
synced 2024-10-23 08:44:28 +08:00
rewrite code in the manner suggested by @terrelln
This commit is contained in:
parent
61d08b0e42
commit
47d4f5662d
@ -254,23 +254,21 @@ _search_next_long:
|
||||
|
||||
/* short match found: let's check for a longer one */
|
||||
mLength = ZSTD_count(ip+4, matchs0+4, iend) + 4;
|
||||
offset = (U32)(ip - matchs0);
|
||||
|
||||
/* check long match at +1 position */
|
||||
if (idxl1 > prefixLowestIndex) {
|
||||
if (MEM_read64(matchl1) == MEM_read64(ip1)) {
|
||||
size_t const llen = ZSTD_count(ip1+8, matchl1+8, iend) + 8;
|
||||
if (llen > mLength) {
|
||||
ip = ip1;
|
||||
mLength = llen;
|
||||
offset = (U32)(ip-matchl1);
|
||||
while (((ip>anchor) & (matchl1>prefixLowest)) && (ip[-1] == matchl1[-1])) { ip--; matchl1--; mLength++; } /* catch up */
|
||||
goto _match_found;
|
||||
} }
|
||||
if ((idxl1 > prefixLowestIndex) && (MEM_read64(matchl1) == MEM_read64(ip1))) {
|
||||
size_t const l1len = ZSTD_count(ip1+8, matchl1+8, iend) + 8;
|
||||
if (l1len > mLength) {
|
||||
/* use the long match instead */
|
||||
ip = ip1;
|
||||
mLength = l1len;
|
||||
offset = (U32)(ip-matchl1);
|
||||
matchs0 = matchl1;
|
||||
}
|
||||
}
|
||||
|
||||
/* validate short match previously found */
|
||||
offset = (U32)(ip - matchs0);
|
||||
while (((ip>anchor) & (matchs0>prefixLowest)) && (ip[-1] == matchs0[-1])) { ip--; matchs0--; mLength++; } /* catch up */
|
||||
while (((ip>anchor) & (matchs0>prefixLowest)) && (ip[-1] == matchs0[-1])) { ip--; matchs0--; mLength++; } /* complete backward */
|
||||
|
||||
/* fall-through */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user