diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 15:39:37 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 15:39:37 +0530 |
commit | 7c13ed35bba1bc52cb21fd44ae9a99d3ddf348f4 (patch) | |
tree | 5d13d838278bcba628021858753b2506bde6d66c /src/config.c | |
parent | 9db8df442583e8dec3ca49e767bb4681776baa5a (diff) |
config: add config_delete()
Diffstat (limited to 'src/config.c')
-rw-r--r-- | src/config.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c index 46a3ad2..94eb18d 100644 --- a/src/config.c +++ b/src/config.c @@ -62,6 +62,31 @@ config_parse(char *content) return config; } +void +config_delete(config_t *config) +{ + for (size_t i = 0; i < config->keys->size; i++) { + ptr_wrapper_t *wrapper; + + wrapper = list_get(config->values, i); + if (wrapper->ptr != NULL) + free(wrapper->ptr); + + list_t *l = list_get(config->array_values, i); + for (size_t y = 0; y < l->size; y++) { + wrapper = list_get(l, y); + + if (wrapper->ptr != NULL) + free(wrapper->ptr); + } + } + + list_delete(config->keys); + list_delete(config->values); + list_delete(config->array_values); + free(config); +} + config_t * config_fetch_and_parse(char *path) { |