]> granicus.if.org Git - yasm/commitdiff
* hamt.c (HAMT_insert): Avoid hash collisions by checking full string on hash
authorPeter Johnson <peter@tortall.net>
Wed, 26 Apr 2006 04:55:01 +0000 (04:55 -0000)
committerPeter Johnson <peter@tortall.net>
Wed, 26 Apr 2006 04:55:01 +0000 (04:55 -0000)
match.

svn path=/trunk/yasm/; revision=1511

libyasm/hamt.c

index 320dbf71dfc72975587804849f47dd4feaedb3c5..129bae1496e8262f807117a2bf2d9e5eed858400 100644 (file)
@@ -209,7 +209,8 @@ HAMT_insert(HAMT *hamt, const char *str, void *data, int *replace,
 
     for (;;) {
        if (!(IsSubTrie(node))) {
-           if (node->BitMapKey == key) {
+           if (node->BitMapKey == key
+               && strcmp(((HAMTEntry *)(node->BaseValue))->str, str) == 0) {
                /*@-branchstate@*/
                if (*replace) {
                    deletefunc(((HAMTEntry *)(node->BaseValue))->data);