File tree Expand file tree Collapse file tree 2 files changed +10
-4
lines changed
Expand file tree Collapse file tree 2 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -143,14 +143,20 @@ namespace lsp
143143 uint32_t delta = length - root[*v];
144144 while (delta <= dmax)
145145 {
146- // Byte matched, compute the length of the sub-sequence
146+ // Byte matched, do some heuristics
147147 const size_t soff = (head + cap - delta) % cap;
148+ if ((len > 1 ) && (data[(soff + len - 1 ) % cap] != v[len-1 ]))
149+ {
150+ delta = length - index[soff];
151+ continue ;
152+ }
153+
154+ // Compute the length of the sub-sequence
148155 const size_t lookup = lsp_min (avail, delta);
149156 size_t slen = 1 ;
150157 for (size_t i=1 ; i<lookup; ++i)
151158 {
152- const uint8_t b = data[(soff + i) % cap];
153- if (v[i] != b)
159+ if (v[i] != data[(soff + i) % cap])
154160 break ;
155161 ++slen;
156162 }
Original file line number Diff line number Diff line change 3131
3232using namespace lsp ;
3333
34- #define BUFFER_SIZE 0x100000
34+ #define BUFFER_SIZE 0x40000
3535
3636UTEST_BEGIN (" runtime.resource" , compressor)
3737
You can’t perform that action at this time.
0 commit comments