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

Reply via email to