X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Freckeys.c;h=649ec1cdc74658919befecd85d3ed2cc59fafc72;hb=f1a47574b77092816b4ed7b7c37e298c1a8110ac;hp=067de6b843b07e8ee2bada63a5bbd1c15797f0a8;hpb=ecb3935e78cd9bcfdebafdee0834cfb1060d7b5e;p=idzebra-moved-to-github.git diff --git a/index/reckeys.c b/index/reckeys.c index 067de6b..649ec1c 100644 --- a/index/reckeys.c +++ b/index/reckeys.c @@ -1,5 +1,5 @@ -/* $Id: reckeys.c,v 1.4 2006-05-10 08:13:22 adam Exp $ - Copyright (C) 1995-2005 +/* $Id: reckeys.c,v 1.6 2006-06-07 10:14:41 adam Exp $ + Copyright (C) 1995-2006 Index Data ApS This file is part of the Zebra server. @@ -53,12 +53,16 @@ struct zebra_rec_keys_t_ { struct zebra_rec_key_entry **zebra_rec_keys_mk_hash(zebra_rec_keys_t p, const char *buf, - size_t len) + size_t len, + const struct it_key *key) { unsigned h = 0; size_t i; + int j; for (i = 0; ilen; j++) + h = h * 65509 + CAST_ZINT_TO_INT(key->mem[j]); return &p->entries[h % (unsigned) p->hash_size]; } @@ -87,7 +91,7 @@ zebra_rec_keys_t zebra_rec_keys_open() p->decode_handle = iscz1_start(); p->nmem = nmem_create(); - p->hash_size = 127; + p->hash_size = 1023; p->entries = 0; init_hash(p); @@ -148,7 +152,8 @@ int zebra_rec_keys_add_hash(zebra_rec_keys_t keys, const char *str, size_t slen, const struct it_key *key) { - struct zebra_rec_key_entry **kep = zebra_rec_keys_mk_hash(keys, str, slen); + struct zebra_rec_key_entry **kep = zebra_rec_keys_mk_hash(keys, + str, slen, key); while (*kep) { struct zebra_rec_key_entry *e = *kep;