diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/types.c | 7 | ||||
-rw-r--r-- | src/utils/utils.c | 8 | ||||
-rw-r--r-- | src/utils/utils.h | 2 |
3 files changed, 9 insertions, 8 deletions
diff --git a/src/utils/types.c b/src/utils/types.c index f986ba3..e414f92 100644 --- a/src/utils/types.c +++ b/src/utils/types.c @@ -15,7 +15,7 @@ generic_array_t create_array(size_t elem_size, size_t n) { } void free_array(generic_array_t *array) { - free_and_nullify((void **)&array->data); + free_and_nullify(array->data); array->n = 0; } @@ -49,11 +49,12 @@ str_array_t create_str_array(size_t n) { return array; } +// NOTE: would free both the array and all its elements void free_str_array(str_array_t *array) { for (size_t i = 0; i < array->n; i++) { free(array->str[i]); } - free_and_nullify((void **)&array->str); + free_and_nullify(array->str); array->n = 0; } @@ -115,7 +116,7 @@ data_t dequeue(queue_t *queue) { node_t *temp = queue->front; data_t data = temp->data; queue->front = temp->next; - free_and_nullify((void **)&temp); + free_and_nullify(temp); if (queue->front == NULL) { queue->rear = NULL; diff --git a/src/utils/utils.c b/src/utils/utils.c index f7de635..ae60eee 100644 --- a/src/utils/utils.c +++ b/src/utils/utils.c @@ -170,9 +170,9 @@ int repchr(char *str, char t, char r) { return c; } -void free_and_nullify(void **p) { - if (*p) { - free(*p); - *p = NULL; +void free_and_nullify(void *p) { + if (p) { + free(p); + p = NULL; } } diff --git a/src/utils/utils.h b/src/utils/utils.h index a96ab70..5a26cf2 100644 --- a/src/utils/utils.h +++ b/src/utils/utils.h @@ -14,6 +14,6 @@ const char *mimeType2ext(const char *mimeType); int repchr(char *str, char t, char r); /* NOTICE: pass a pointer-to-pointer to free the original pointer. */ -void free_and_nullify(void **p); +void free_and_nullify(void *p); #endif |