X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=diffcore-delta.c;fp=diffcore-delta.c;h=835d82c9939644faa808bb2f616136549af521db;hb=fc66d213f8b2f13b9ffd643f01de25ddc95e0972;hp=f8a751837e3e67fef57e3de9670e5a2defc6652a;hpb=2821104db7fabdfac105ae757228b0eac107047c;p=git.git diff --git a/diffcore-delta.c b/diffcore-delta.c index f8a75183..835d82c9 100644 --- a/diffcore-delta.c +++ b/diffcore-delta.c @@ -26,12 +26,19 @@ /* Wild guess at the initial hash size */ #define INITIAL_HASH_SIZE 9 -#define HASHBASE 65537 /* next_prime(2^16) */ + /* We leave more room in smaller hash but do not let it * grow to have unused hole too much. */ #define INITIAL_FREE(sz_log2) ((1<<(sz_log2))*(sz_log2-3)/(sz_log2)) +/* A prime rather carefully chosen between 2^16..2^17, so that + * HASHBASE < INITIAL_FREE(17). We want to keep the maximum hashtable + * size under the current 2<<17 maximum, which can hold this many + * different values before overflowing to hashtable of size 2<<18. + */ +#define HASHBASE 107927 + struct spanhash { unsigned long hashval; unsigned long cnt;