1.1 --- a/src/hash_map.c Thu Apr 20 19:13:25 2023 +0200 1.2 +++ b/src/hash_map.c Fri Apr 21 18:38:18 2023 +0200 1.3 @@ -51,7 +51,7 @@ 1.4 // invoke the destructor 1.5 cx_invoke_destructor(map, elem->data); 1.6 // free the key data 1.7 - cxFree(map->allocator, elem->key.data.obj); 1.8 + cxFree(map->allocator, (void *) elem->key.data); 1.9 // free the node 1.10 cxFree(map->allocator, elem); 1.11 // proceed 1.12 @@ -100,7 +100,7 @@ 1.13 } 1.14 1.15 if (elm != NULL && elm->key.hash == hash && elm->key.len == key.len && 1.16 - memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) { 1.17 + memcmp(elm->key.data, key.data, key.len) == 0) { 1.18 // overwrite existing element 1.19 if (map->store_pointer) { 1.20 memcpy(elm->data, &value, sizeof(void *)); 1.21 @@ -129,8 +129,8 @@ 1.22 if (kd == NULL) { 1.23 return -1; 1.24 } 1.25 - memcpy(kd, key.data.obj, key.len); 1.26 - e->key.data.obj = kd; 1.27 + memcpy(kd, key.data, key.len); 1.28 + e->key.data = kd; 1.29 e->key.len = key.len; 1.30 e->key.hash = hash; 1.31 1.32 @@ -162,7 +162,7 @@ 1.33 prev->next = elm->next; 1.34 } 1.35 // free element 1.36 - cxFree(hash_map->base.allocator, elm->key.data.obj); 1.37 + cxFree(hash_map->base.allocator, (void *) elm->key.data); 1.38 cxFree(hash_map->base.allocator, elm); 1.39 // decrease size 1.40 hash_map->base.size--; 1.41 @@ -196,7 +196,7 @@ 1.42 struct cx_hash_map_element_s *prev = NULL; 1.43 while (elm && elm->key.hash <= hash) { 1.44 if (elm->key.hash == hash && elm->key.len == key.len) { 1.45 - if (memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) { 1.46 + if (memcmp(elm->key.data, key.data, key.len) == 0) { 1.47 void *data = NULL; 1.48 if (destroy) { 1.49 cx_invoke_destructor(map, elm->data);