Enlightenment CVS committal Author : cedric Project : e17 Module : proto/eina
Dir : e17/proto/eina/src/lib Modified Files: eina_stringshare.c Log Message: Fix eina_stringshare_shutdown to return value like all eine shutdown funtion. Cleanup hash function call. =================================================================== RCS file: /cvs/e/e17/proto/eina/src/lib/eina_stringshare.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- eina_stringshare.c 1 Aug 2008 14:23:54 -0000 1.5 +++ eina_stringshare.c 6 Aug 2008 15:49:50 -0000 1.6 @@ -12,6 +12,7 @@ #include "eina_stringshare.h" #include "eina_error.h" +#include "eina_private.h" typedef struct _Eina_Stringshare Eina_Stringshare; typedef struct _Eina_Stringshare_Node Eina_Stringshare_Node; @@ -30,22 +31,6 @@ static Eina_Stringshare *share = NULL; static int eina_stringshare_init_count = 0; -static inline int -_eina_stringshare_hash_gen(const char *str, int *len) -{ - unsigned int hash_num = 5381; - const unsigned char *ptr; - - for (ptr = (const unsigned char *)str; *ptr; ptr++) - { - hash_num = (hash_num * 33) ^ *ptr; - } - - hash_num &= 0x3ff; - *len = ptr - (const unsigned char *)str; - return (int)hash_num; -} - /** * @defgroup Eina_Stringshare_Group String Instance Functions * @@ -104,7 +89,8 @@ Eina_Stringshare_Node *el, *pel = NULL; if (!str) return NULL; - hash_num = _eina_stringshare_hash_gen(str, &slen); + slen = strlen(str) + 1; + hash_num = eina_hash_djb2(str, slen) & 0x3FF; for (el = share->buckets[hash_num]; el; pel = el, el = el->next) { el_str = ((char *)el) + sizeof(Eina_Stringshare_Node); @@ -145,7 +131,8 @@ Eina_Stringshare_Node *el, *pel = NULL; if (!str) return; - hash_num = _eina_stringshare_hash_gen(str, &slen); + slen = strlen(str) + 1; + hash_num = eina_hash_djb2(str, slen) & 0x3FF; for (el = share->buckets[hash_num]; el; pel = el, el = el->next) { el_str = ((char *)el) + sizeof(Eina_Stringshare_Node); @@ -177,7 +164,7 @@ /** * Shutdown the eina string internal structures */ -EAPI void +EAPI int eina_stringshare_shutdown() { --eina_stringshare_init_count; @@ -202,5 +189,7 @@ eina_error_shutdown(); } + + return eina_stringshare_init_count; } ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs