src/hash_map.c

changeset 575
b05935945637
parent 574
d566bd3e6af8
child 630
ac5e7f789048
--- a/src/hash_map.c	Fri Aug 12 16:48:59 2022 +0200
+++ b/src/hash_map.c	Fri Aug 12 16:56:41 2022 +0200
@@ -86,12 +86,12 @@
         elm = elm->next;
     }
 
-    if (elm != NULL && elm->key.hash == hash) {
+    if (elm != NULL && elm->key.hash == hash && elm->key.len == key.len &&
+        memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) {
         // overwrite existing element
         elm->data = value;
     } else {
-        // insert new element
-
+        // allocate new element
         struct cx_hash_map_element_s *e = cxMalloc(allocator, sizeof(struct cx_hash_map_element_s));
         if (e == NULL) {
             return -1;

mercurial