src/hash_map.c

changeset 685
2dd841e364af
parent 677
b09aae58bba4
child 686
64919f63f059
     1.1 --- a/src/hash_map.c	Mon Apr 17 21:47:34 2023 +0200
     1.2 +++ b/src/hash_map.c	Tue Apr 18 18:01:41 2023 +0200
     1.3 @@ -100,7 +100,7 @@
     1.4      if (elm != NULL && elm->key.hash == hash && elm->key.len == key.len &&
     1.5          memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) {
     1.6          // overwrite existing element
     1.7 -        if (map->store_pointers) {
     1.8 +        if (map->store_pointer) {
     1.9              memcpy(elm->data, &value, sizeof(void *));
    1.10          } else {
    1.11              memcpy(elm->data, value, map->item_size);
    1.12 @@ -116,7 +116,7 @@
    1.13          }
    1.14  
    1.15          // write the value
    1.16 -        if (map->store_pointers) {
    1.17 +        if (map->store_pointer) {
    1.18              memcpy(e->data, &value, sizeof(void *));
    1.19          } else {
    1.20              memcpy(e->data, value, map->item_size);
    1.21 @@ -194,7 +194,7 @@
    1.22          if (elm->key.hash == hash && elm->key.len == key.len) {
    1.23              if (memcmp(elm->key.data.obj, key.data.obj, key.len) == 0) {
    1.24                  void *data = NULL;
    1.25 -                if (map->store_pointers) {
    1.26 +                if (map->store_pointer) {
    1.27                      data = *(void **) elm->data;
    1.28                  } else if (!remove) {
    1.29                      data = elm->data;
    1.30 @@ -243,7 +243,7 @@
    1.31      struct cx_iterator_s const *iter = it;
    1.32      struct cx_hash_map_s const *map = iter->src_handle;
    1.33      struct cx_hash_map_element_s *elm = iter->elem_handle;
    1.34 -    if (map->base.store_pointers) {
    1.35 +    if (map->base.store_pointer) {
    1.36          return *(void **) elm->data;
    1.37      } else {
    1.38          return elm->data;
    1.39 @@ -304,7 +304,7 @@
    1.40          iter->kv_data.value = NULL;
    1.41      } else {
    1.42          iter->kv_data.key = &elm->key;
    1.43 -        if (map->base.store_pointers) {
    1.44 +        if (map->base.store_pointer) {
    1.45              iter->kv_data.value = *(void **) elm->data;
    1.46          } else {
    1.47              iter->kv_data.value = elm->data;
    1.48 @@ -344,7 +344,7 @@
    1.49          }
    1.50          iter.elem_handle = elm;
    1.51          iter.kv_data.key = &elm->key;
    1.52 -        if (map->store_pointers) {
    1.53 +        if (map->store_pointer) {
    1.54              iter.kv_data.value = *(void **) elm->data;
    1.55          } else {
    1.56              iter.kv_data.value = elm->data;
    1.57 @@ -416,7 +416,7 @@
    1.58          buckets = 16;
    1.59      }
    1.60  
    1.61 -    struct cx_hash_map_s *map = cxMalloc(allocator, sizeof(struct cx_hash_map_s));
    1.62 +    struct cx_hash_map_s *map = cxCalloc(allocator, 1, sizeof(struct cx_hash_map_s));
    1.63      if (map == NULL) return NULL;
    1.64  
    1.65      // initialize hash map members
    1.66 @@ -430,13 +430,12 @@
    1.67      // initialize base members
    1.68      map->base.cl = &cx_hash_map_class;
    1.69      map->base.allocator = allocator;
    1.70 -    map->base.size = 0;
    1.71  
    1.72      if (itemsize > 0) {
    1.73 -        map->base.store_pointers = false;
    1.74 +        map->base.store_pointer = false;
    1.75          map->base.item_size = itemsize;
    1.76      } else {
    1.77 -        map->base.store_pointers = true;
    1.78 +        map->base.store_pointer = true;
    1.79          map->base.item_size = sizeof(void *);
    1.80      }
    1.81  

mercurial