From 1f7cba9338fdabeca7c72974f51a87ddb3adc482 Mon Sep 17 00:00:00 2001 From: Squibid Date: Fri, 5 Sep 2025 18:38:21 -0400 Subject: [PATCH] feat!: make all functions have return values --- ds.c | 38 +++++++++++++++++++++++++++++--------- ds.h | 12 ++++++++---- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/ds.c b/ds.c index 81f6084..79b4262 100644 --- a/ds.c +++ b/ds.c @@ -27,33 +27,45 @@ ds_dll_t return node; } -void +int ds_sll_insert(ds_sll_t *ll, void *data) { + if (!ll) { + return -1; + } + ds_ll_foreach(ds_sll_t, ll) { if (!cur->data) { cur->data = data; - return; + return 0; } else if (!cur->next) { cur->next = ds_sll_new_node(data); - return; + return 0; } } + + return -1; } -void +int ds_dll_insert(ds_dll_t *ll, void *data) { + if (!ll) { + return -1; + } + ds_ll_foreach(ds_dll_t, ll) { if (!cur->data) { cur->data = data; - return; + return 0; } else if (!cur->next) { cur->next = ds_dll_new_node(data); cur->next->prev = cur; - return; + return 0; } } + + return -1; } void @@ -152,7 +164,7 @@ ds_hmp_t return hmp; } -void +int ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv)) { int i; @@ -160,7 +172,7 @@ ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv)) ds_sll_t *ll; if (!hmp || !*hmp) { - return; + return -1; } for (i = 0; i < (*hmp)->data_len; i++) { @@ -179,6 +191,8 @@ ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv)) } free((*hmp)->data); free(*hmp); + + return 0; } int @@ -194,13 +208,17 @@ _ds_hmp_gen_hash(char *str) return hash; } -void +int ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data) { _ds_hmp_kv_t *kv; ds_sll_t *ll; unsigned hash_pos; + if (!hmp || !key || !data) { + return -1; + } + kv = malloc(sizeof(_ds_hmp_kv_t)); kv->key = key; kv->val = data; @@ -213,6 +231,8 @@ ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data) /* get the ll and put the data into it */ ll = hmp->data[hash_pos]; ds_sll_insert(ll, kv); + + return 0; } void diff --git a/ds.h b/ds.h index 18a000f..58ff04e 100644 --- a/ds.h +++ b/ds.h @@ -46,8 +46,9 @@ ds_dll_t *ds_dll_new_node(void *data); * * @param ll singly linked list * @param data data you want to add + * @return 0 on success */ -void ds_sll_insert(ds_sll_t *ll, void *data); +int ds_sll_insert(ds_sll_t *ll, void *data); /** * @brief data to insert into a doubly linked list. This will use @@ -55,8 +56,9 @@ void ds_sll_insert(ds_sll_t *ll, void *data); * * @param ll doubly linked list * @param data data you want to add + * @return 0 on success */ -void ds_dll_insert(ds_dll_t *ll, void *data); +int ds_dll_insert(ds_dll_t *ll, void *data); /** * @brief remove an index from a singly linked list @@ -88,8 +90,9 @@ ds_hmp_t *ds_hmp_init(int data_len); * @brief free all data allocated by ds_hmp_init and ds_hmp_insert * * @param hmp pointer to the hashmap + * @return 0 on success */ -void ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv)); +int ds_hmp_free(ds_hmp_t **hmp, void kv_callback(_ds_hmp_kv_t *kv)); /** * @brief generate a numerical hash from a given string. You shouldn't need to @@ -107,8 +110,9 @@ int _ds_hmp_gen_hash(char *str); * @param hmp the hashmap to insert into * @param key the key * @param data the data + * @return 0 on success */ -void ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data); +int ds_hmp_insert(ds_hmp_t *hmp, char *key, void *data); /** * @brief get something from a hashmap using it's key