diff -r 380bd45bc94a -r 2dd841e364af src/hash_map.c --- a/src/hash_map.c Mon Apr 17 21:47:34 2023 +0200 +++ b/src/hash_map.c Tue Apr 18 18:01:41 2023 +0200 @@ -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) { // overwrite existing element - if (map->store_pointers) { + if (map->store_pointer) { memcpy(elm->data, &value, sizeof(void *)); } else { memcpy(elm->data, value, map->item_size); @@ -116,7 +116,7 @@ } // write the value - if (map->store_pointers) { + if (map->store_pointer) { memcpy(e->data, &value, sizeof(void *)); } else { memcpy(e->data, value, map->item_size); @@ -194,7 +194,7 @@ if (elm->key.hash == hash && elm->key.len == key.len) { if (memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) { void *data = NULL; - if (map->store_pointers) { + if (map->store_pointer) { data = *(void **) elm->data; } else if (!remove) { data = elm->data; @@ -243,7 +243,7 @@ struct cx_iterator_s const *iter = it; struct cx_hash_map_s const *map = iter->src_handle; struct cx_hash_map_element_s *elm = iter->elem_handle; - if (map->base.store_pointers) { + if (map->base.store_pointer) { return *(void **) elm->data; } else { return elm->data; @@ -304,7 +304,7 @@ iter->kv_data.value = NULL; } else { iter->kv_data.key = &elm->key; - if (map->base.store_pointers) { + if (map->base.store_pointer) { iter->kv_data.value = *(void **) elm->data; } else { iter->kv_data.value = elm->data; @@ -344,7 +344,7 @@ } iter.elem_handle = elm; iter.kv_data.key = &elm->key; - if (map->store_pointers) { + if (map->store_pointer) { iter.kv_data.value = *(void **) elm->data; } else { iter.kv_data.value = elm->data; @@ -416,7 +416,7 @@ buckets = 16; } - struct cx_hash_map_s *map = cxMalloc(allocator, sizeof(struct cx_hash_map_s)); + struct cx_hash_map_s *map = cxCalloc(allocator, 1, sizeof(struct cx_hash_map_s)); if (map == NULL) return NULL; // initialize hash map members @@ -430,13 +430,12 @@ // initialize base members map->base.cl = &cx_hash_map_class; map->base.allocator = allocator; - map->base.size = 0; if (itemsize > 0) { - map->base.store_pointers = false; + map->base.store_pointer = false; map->base.item_size = itemsize; } else { - map->base.store_pointers = true; + map->base.store_pointer = true; map->base.item_size = sizeof(void *); }