celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pnol...@apache.org
Subject [2/3] celix git commit: CELIX-348: Improved string hash.
Date Wed, 10 Feb 2016 07:47:34 GMT
CELIX-348: Improved string hash.


Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/13f34df4
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/13f34df4
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/13f34df4

Branch: refs/heads/develop
Commit: 13f34df4648ab63e9c5a01afee1a99de06cf467e
Parents: 88a7da2
Author: Pepijn Noltes <pepijnnoltes@gmail.com>
Authored: Wed Feb 10 08:43:50 2016 +0100
Committer: Pepijn Noltes <pepijnnoltes@gmail.com>
Committed: Wed Feb 10 08:43:50 2016 +0100

----------------------------------------------------------------------
 framework/private/src/utils.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/13f34df4/framework/private/src/utils.c
----------------------------------------------------------------------
diff --git a/framework/private/src/utils.c b/framework/private/src/utils.c
index f8e5d1f..a072623 100644
--- a/framework/private/src/utils.c
+++ b/framework/private/src/utils.c
@@ -29,18 +29,14 @@
 #include "utils.h"
 
 unsigned int utils_stringHash(void * string) {
-	char * str = (char *) string;
+    unsigned int hash = 5381;
+    unsigned int i = 0;
+    unsigned int len = strlen(string);
 
-	unsigned int hash = 1315423911;
-	unsigned int i    = 0;
-	unsigned int len = strlen(str);
+    for(i=0; i < len; i++)
+    { hash = (hash << 5) + (*string) + hash; }
 
-	for(i = 0; i < len; str++, i++)
-	{
-	  hash ^= ((hash << 5) + (*str) + (hash >> 2));
-	}
-
-	return hash;
+    return hash;
 }
 
 int utils_stringEquals(void * string, void * toCompare) {
@@ -134,4 +130,4 @@ FRAMEWORK_EXPORT int utils_compareServiceIdsAndRanking(long servId, long
servRan
 	}
 
 	return result;
-}
\ No newline at end of file
+}


Mime
View raw message