From: Homer Hsing Date: Fri, 14 Sep 2012 02:06:39 +0000 (+0800) Subject: Reduce hash value collision probability in src/main.c X-Git-Tag: intel-gpu-tools-1.4~609 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7186723f81f42b56be44709c4aa6f178553ce2dc;p=profile%2Fextras%2Fintel-gpu-tools.git Reduce hash value collision probability in src/main.c Original code use "hash_value = *name++", which may produce hash value collision for word permutations like "abc", "bac" and "cba". --- diff --git a/assembler/src/main.c b/assembler/src/main.c index 30c9018..d16d271 100644 --- a/assembler/src/main.c +++ b/assembler/src/main.c @@ -78,10 +78,10 @@ static void usage(void) static int hash(char *name) { - int ret = 0; + unsigned ret = 0; while(*name) - ret += *name++; - return ret%HASHSZ; + ret = (ret << 1) + (*name++); + return ret % HASHSZ; } struct declared_register *find_register(char *name)