diff -r 5d0244c6fa3e -r 2c2304622981 src/hash_map.c --- a/src/hash_map.c Thu Apr 20 19:13:25 2023 +0200 +++ b/src/hash_map.c Fri Apr 21 18:38:18 2023 +0200 @@ -51,7 +51,7 @@ // invoke the destructor cx_invoke_destructor(map, elem->data); // free the key data - cxFree(map->allocator, elem->key.data.obj); + cxFree(map->allocator, (void *) elem->key.data); // free the node cxFree(map->allocator, elem); // proceed @@ -100,7 +100,7 @@ } if (elm != NULL && elm->key.hash == hash && elm->key.len == key.len && - memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) { + memcmp(elm->key.data, key.data, key.len) == 0) { // overwrite existing element if (map->store_pointer) { memcpy(elm->data, &value, sizeof(void *)); @@ -129,8 +129,8 @@ if (kd == NULL) { return -1; } - memcpy(kd, key.data.obj, key.len); - e->key.data.obj = kd; + memcpy(kd, key.data, key.len); + e->key.data = kd; e->key.len = key.len; e->key.hash = hash; @@ -162,7 +162,7 @@ prev->next = elm->next; } // free element - cxFree(hash_map->base.allocator, elm->key.data.obj); + cxFree(hash_map->base.allocator, (void *) elm->key.data); cxFree(hash_map->base.allocator, elm); // decrease size hash_map->base.size--; @@ -196,7 +196,7 @@ struct cx_hash_map_element_s *prev = NULL; while (elm && elm->key.hash <= hash) { if (elm->key.hash == hash && elm->key.len == key.len) { - if (memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) { + if (memcmp(elm->key.data, key.data, key.len) == 0) { void *data = NULL; if (destroy) { cx_invoke_destructor(map, elm->data);