diff options
author | David Kastrup <dak@gnu.org> | 2007-08-23 07:51:45 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-08-23 00:04:10 -0700 |
commit | b1d884a9e3968db1fff91c2d066d871a3b8b013c (patch) | |
tree | 9a5c4092d31239dbc315003511c568e5a084efa3 | |
parent | 59fc84074218475c06e27e13392fce9bbf2553bd (diff) | |
download | git-b1d884a9e3968db1fff91c2d066d871a3b8b013c.tar.gz git-b1d884a9e3968db1fff91c2d066d871a3b8b013c.tar.xz |
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 <dak@gnu.org>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | diff-delta.c | 2 |
1 files changed, 1 insertions, 1 deletions
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); |