Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore


Modified Files:
        ecore_hash.c 


Log Message:
Fix hash reduce function. Passed wrong value to rehash.

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore/ecore_hash.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- ecore_hash.c        3 Jun 2007 11:37:32 -0000       1.38
+++ ecore_hash.c        3 Jun 2007 12:22:05 -0000       1.39
@@ -4,19 +4,17 @@
 
 #define PRIME_TABLE_MAX 21
 #define PRIME_MIN 17
-#define PRIME_MAX 1677721
+#define PRIME_MAX 16777213
 
 #define ECORE_HASH_CHAIN_MAX 3
 
 #define ECORE_COMPUTE_HASH(hash, key) hash->hash_func(key) % \
                                        ecore_prime_table[hash->size];
 
-//#define ECORE_HASH_INCREASE(hash) ((hash && ecore_prime_table[hash->size] < 
PRIME_MAX) ?
-#define ECORE_HASH_INCREASE(hash) ((hash && hash->size < PRIME_MAX) ? \
+#define ECORE_HASH_INCREASE(hash) ((hash && ecore_prime_table[hash->size] < 
PRIME_MAX) ? \
                (hash->nodes / ecore_prime_table[hash->size]) > \
                ECORE_HASH_CHAIN_MAX : FALSE)
-//#define ECORE_HASH_REDUCE(hash) ((hash && ecore_prime_table[hash->size] > 
PRIME_MIN) ?
-#define ECORE_HASH_REDUCE(hash) ((hash && hash->size > PRIME_MIN) ? \
+#define ECORE_HASH_REDUCE(hash) ((hash && ecore_prime_table[hash->size] > 
PRIME_MIN) ? \
                (double)hash->nodes / (double)ecore_prime_table[hash->size-1] \
                < ((double)ECORE_HASH_CHAIN_MAX * 0.375) : FALSE)
 
@@ -677,8 +675,7 @@
    CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE);
 
    /* Max size reached so return FALSE */
-   //if ((ecore_prime_table[hash->size] == PRIME_MAX) || (hash->size == 
PRIME_TABLE_MAX))
-   if (hash->size == PRIME_TABLE_MAX)
+   if ((ecore_prime_table[hash->size] == PRIME_MAX) || (hash->size == 
PRIME_TABLE_MAX))
      return FALSE;
 
    /*
@@ -761,7 +758,7 @@
 
    hash->nodes = 0;
 
-   if (_ecore_hash_rehash(hash, old, hash->size - 1))
+   if (_ecore_hash_rehash(hash, old, hash->size + 1))
      {
        FREE(old);
        return TRUE;



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to