From: David Kastrup Date: Thu, 23 Aug 2007 05:51:45 +0000 (+0200) Subject: diff-delta.c: Fix broken skip calculation. X-Git-Tag: v1.5.3-rc7~34 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b1d884a9e3968db1fff91c2d066d871a3b8b013c;p=git.git diff-delta.c: Fix broken skip calculation. A particularly bad case was HASH_LIMIT <= hash_count[i] < 2*HASH_LIMIT: in that case, only a single hash survived. For larger cases, 2*HASH_LIMIT was the actual limiting value after pruning. Signed-off-by: David Kastrup Acked-by: Nicolas Pitre Signed-off-by: Junio C Hamano --- diff --git a/diff-delta.c b/diff-delta.c index 3af583536..0dde2f2dc 100644 --- a/diff-delta.c +++ b/diff-delta.c @@ -213,7 +213,7 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize) entry = hash[i]; do { struct index_entry *keep = entry; - int skip = hash_count[i] / HASH_LIMIT / 2; + int skip = hash_count[i] / HASH_LIMIT; do { entry = entry->next; } while(--skip && entry);