aboutsummaryrefslogtreecommitdiff
path: root/analyzer/structures/hashmap.c
diff options
context:
space:
mode:
authorMosder <xmosder12@gmail.com>2026-07-23 17:35:04 +0200
committerMosder <xmosder12@gmail.com>2026-07-23 17:35:04 +0200
commit8317c3b33b9b1c70e5ae4c87c7efe33d9b9ce09a (patch)
tree8a6b5e20196a253c75b44762de223f1ea2b4a067 /analyzer/structures/hashmap.c
parent33fcaa8140784ab32cfc8c14a6fc7fdb71435265 (diff)
feat: added helper functions for dealing with memory management and refactored the codebase to use them
Diffstat (limited to 'analyzer/structures/hashmap.c')
-rw-r--r--analyzer/structures/hashmap.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/analyzer/structures/hashmap.c b/analyzer/structures/hashmap.c
index 84cc289..5eb27ae 100644
--- a/analyzer/structures/hashmap.c
+++ b/analyzer/structures/hashmap.c
@@ -3,6 +3,8 @@
#include <stdlib.h>
#include <string.h>
+#include "utils/memory.h"
+
HashMap *hashmap_new(
size_t key_size,
size_t value_size,
@@ -11,9 +13,9 @@ HashMap *hashmap_new(
void (*key_cleanup)(void *key),
void (*value_cleanup)(void *key)
) {
- HashMap *map = malloc(sizeof(HashMap));
+ HashMap *map = safe_malloc(sizeof(HashMap));
// initialize NULLs
- memset(map->table, 0, sizeof(HashMapNode *) * HASHMAP_TABLE_SIZE);
+ memset(map->table, 0, HASHMAP_TABLE_SIZE * sizeof(HashMapNode *));
map->key_size = key_size;
map->value_size = value_size;
map->hash = hash;
@@ -42,9 +44,9 @@ void hashmap_put(HashMap *map, void *key, void *value) {
}
// if it doesn't exist - create new node
- HashMapNode *new_node = malloc(sizeof(HashMapNode));
- new_node->key = malloc(map->key_size);
- new_node->value = malloc(map->value_size);
+ HashMapNode *new_node = safe_malloc(sizeof(HashMapNode));
+ new_node->key = safe_malloc(map->key_size);
+ new_node->value = safe_malloc(map->value_size);
memcpy(new_node->key, key, map->key_size);
memcpy(new_node->value, value, map->value_size);