X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=vector%2Fstringitem.c;h=ce10e7cb8c260876a620a4869a96cc35ecf39e54;hb=14c22de9f38ec5304dd14a2625b6ac8fdfda52f4;hp=12ec1aca4f2eff7190335c6ab647af82864b9104;hpb=6f54a8281e4e5d6bc05e6b4eadc3327d5e48614a;p=rrq%2Frrqmisc.git diff --git a/vector/stringitem.c b/vector/stringitem.c index 12ec1ac..ce10e7c 100644 --- a/vector/stringitem.c +++ b/vector/stringitem.c @@ -2,7 +2,16 @@ #include #include -unsigned long integeritem_hashcode(itemkeyfun *this,void *key) { +/** + * This callback function returns the hashcode of a key. The hashcode + * is used for indexing into the backing vector for finding the an + * item via its key. The same key must map consistently to the same + * hashcode while the hashtable contains an item with that key. + * Different keys map map to the same hashcode, in which case the + * vector placement is made at the first empty or hole slot following + * the hashcode index. + */ +static unsigned long stringitem_hashcode(itemkeyfun *this,void *key) { return hashvector_hashcode( (unsigned char*)key, strlen( (char*)key ) ); } @@ -10,7 +19,7 @@ unsigned long integeritem_hashcode(itemkeyfun *this,void *key) { * This callback function determines whether an item has a * given key or not. */ -int integeritem_haskey(itemkeyfun *this,void *item,void *key) { +static int stringitem_haskey(itemkeyfun *this,void *item,void *key) { return strcmp( item, key ) == 0; } @@ -18,7 +27,7 @@ int integeritem_haskey(itemkeyfun *this,void *item,void *key) { * This callback function returns the key of an item by considering * the arity and schema. */ -void *integeritem_itemkey(itemkeyfun *this,void *item) { +static void *stringitem_itemkey(itemkeyfun *this,void *item) { return item; } @@ -26,7 +35,7 @@ void *integeritem_itemkey(itemkeyfun *this,void *item) { * This callback function handles a key obtained from the itemkey * callback function to reclaim temporary allocation. */ -void integeritem_releasekey(itemkeyfun *this,void *key) { +static void stringitem_releasekey(itemkeyfun *this,void *key) { } itemkeyfun stringitem = { @@ -35,5 +44,3 @@ itemkeyfun stringitem = { .itemkey = stringitem_itemkey, .releasekey = stringitem_releasekey }; - -