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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs