+
+ /* By matching early we avoid re-reading the
+ data 3 times in the case where a token
+ match comes a long way after last
+ match. The 3 reads are caused by the
+ running match, the checksum update and the
+ literal send. */
+ if (offset-last_match >= CHUNK_SIZE+s->n &&
+ (end-offset > CHUNK_SIZE)) {
+ matched(f,s,buf,offset - s->n, -2);
+ }