32 const unsigned char *name = (
const unsigned char *)s;
33 unsigned long h = 0, g;
38 h = (h << 4) + (
unsigned long)(name[i]);
39 if ((g = (h & 0xF0000000UL))!=0)
52 int i = index % h->
prime;
88 int i = index % h->
prime;
89 for(n = &h->
zen[i]; n != NULL; n = n->
next)
90 if(n->
key != NULL && (n->
keylen==len) && (strncmp(key, n->
key, len) == 0))
135 if(h == NULL || key == NULL)
165 if(h == NULL || key == NULL)
return;
186 if(h == NULL || key == NULL)
return NULL;
192 int i = index % h->
prime;
224 if( !h || !key )
return;
237 if(h == NULL || key == NULL)
return;
255 fprintf(stderr,
"XHASH: table prime: %d , number of elements: %d\n", h->
prime, h->
count );
258 for( i = 0; i< h->
prime ; ++i )
261 fprintf(stderr,
"%d: %d\t", i, h->
stat[i]);
263 fprintf(stderr,
"\n");
273 if(h == NULL || w == NULL)
278 for(i = 0; i < h->
prime; i++)
279 for(n = &h->
zen[i]; n != NULL; n = n->
next)
280 if(n->
key != NULL && n->
val != NULL)
289 if(h == NULL)
return 1;
299 if(h == NULL)
return 0;
312 if(h == NULL)
return 0;
321 if(h == NULL)
return 0;
328 if(n->
key != NULL && n->
val != NULL)
375 if(h == NULL || (key == NULL && val == NULL) || (key != NULL && keylen == NULL))
return 0;
378 if(key != NULL) *key = NULL;
379 if(val != NULL) *val = NULL;