diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2022-09-22 05:54:49 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2022-09-23 14:12:37 -0400 |
commit | 54653ceebeabaf30e89d69e0f5aa5de431cc6bd7 (patch) | |
tree | 34efe49d86e9ba64c3a9ef7b2bdb22cb9cc3d37e /vendor/github.com/klauspost/compress/flate/level6.go | |
parent | 25dc2759e10bf0293f14a2205291ab7dd53eccf4 (diff) | |
download | podman-54653ceebeabaf30e89d69e0f5aa5de431cc6bd7.tar.gz podman-54653ceebeabaf30e89d69e0f5aa5de431cc6bd7.tar.bz2 podman-54653ceebeabaf30e89d69e0f5aa5de431cc6bd7.zip |
Update vendor or containers/buildah
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'vendor/github.com/klauspost/compress/flate/level6.go')
-rw-r--r-- | vendor/github.com/klauspost/compress/flate/level6.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/vendor/github.com/klauspost/compress/flate/level6.go b/vendor/github.com/klauspost/compress/flate/level6.go index 62888edf3..85e4b2095 100644 --- a/vendor/github.com/klauspost/compress/flate/level6.go +++ b/vendor/github.com/klauspost/compress/flate/level6.go @@ -213,24 +213,33 @@ func (e *fastEncL6) Encode(dst *tokens, src []byte) { // Try to locate a better match by checking the end-of-match... if sAt := s + l; sAt < sLimit { + // Allow some bytes at the beginning to mismatch. + // Sweet spot is 2/3 bytes depending on input. + // 3 is only a little better when it is but sometimes a lot worse. + // The skipped bytes are tested in Extend backwards, + // and still picked up as part of the match if they do. + const skipBeginning = 2 eLong := &e.bTable[hash7(load6432(src, sAt), tableBits)] // Test current - t2 := eLong.Cur.offset - e.cur - l - off := s - t2 + t2 := eLong.Cur.offset - e.cur - l + skipBeginning + s2 := s + skipBeginning + off := s2 - t2 if off < maxMatchOffset { if off > 0 && t2 >= 0 { - if l2 := e.matchlenLong(s, t2, src); l2 > l { + if l2 := e.matchlenLong(s2, t2, src); l2 > l { t = t2 l = l2 + s = s2 } } // Test next: - t2 = eLong.Prev.offset - e.cur - l - off := s - t2 + t2 = eLong.Prev.offset - e.cur - l + skipBeginning + off := s2 - t2 if off > 0 && off < maxMatchOffset && t2 >= 0 { - if l2 := e.matchlenLong(s, t2, src); l2 > l { + if l2 := e.matchlenLong(s2, t2, src); l2 > l { t = t2 l = l2 + s = s2 } } } |