aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-07-27 15:39:37 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-07-27 15:39:37 +0530
commit7c13ed35bba1bc52cb21fd44ae9a99d3ddf348f4 (patch)
tree5d13d838278bcba628021858753b2506bde6d66c /src
parent9db8df442583e8dec3ca49e767bb4681776baa5a (diff)
config: add config_delete()
Diffstat (limited to 'src')
-rw-r--r--src/config.c25
-rw-r--r--src/main.c21
2 files changed, 26 insertions, 20 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)
{
diff --git a/src/main.c b/src/main.c
index acbb1d8..2519a2b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -129,26 +129,7 @@ main(int argc, char **argv)
handle_file(path);
}
- 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_delete(config);
return EXIT_SUCCESS;
}