X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=swcsa%2Futils%2Fhash.c;h=5512920d92f25c3c46ffbcafa3b0151aee5b5f24;hb=HEAD;hp=a8aa4f7f79f48ea813f4bf2389dc3d70519f05b6;hpb=9abbea1aba3d81f1eccd84a92d1857e46a1b3ba2;p=SXSI%2FTextCollection.git diff --git a/swcsa/utils/hash.c b/swcsa/utils/hash.c index a8aa4f7..5512920 100755 --- a/swcsa/utils/hash.c +++ b/swcsa/utils/hash.c @@ -47,8 +47,12 @@ t_hash initialize_hash (unsigned long sizeVoc) { unsigned long i; h = (t_hash) malloc(sizeof(struct hashStr)); - h->SIZE_HASH = (unsigned long) (OCUP_HASH * sizeVoc); - h->SIZE_HASH = NearestPrime(h->SIZE_HASH); + unsigned long m = 6 * sizeVoc; + h->SIZE_HASH = sizeVoc; + do { + h->SIZE_HASH = NearestPrime(h->SIZE_HASH); + } while (h->SIZE_HASH >= m); + h->hash = (t_hashNode *) malloc(h->SIZE_HASH * sizeof(t_hashNode)); h->NumElem = 0; @@ -290,9 +294,7 @@ void insertElement (t_hash h, const unsigned char *aWord, register unsigned long if(h->NumElem >= h->SIZE_HASH/2) { - resize(h); - } //h->hash[*addr].word = (unsigned char*) malloc((len+1) * sizeof(unsigned char)); getMemoryBlock(h->_memMgr,( byte **)&(h->hash[*addr].word),len+1);