From 5875575d0b3233ea68a96a0968d6dfc43005b740 Mon Sep 17 00:00:00 2001 From: Vftdan Date: Thu, 15 Aug 2024 21:25:18 +0200 Subject: [PATCH] Add FullConfig destructor --- config.c | 18 ++++++++++++++++++ config.h | 1 + main.c | 1 + 3 files changed, 20 insertions(+) diff --git a/config.c b/config.c index afeb762..df3cd33 100644 --- a/config.c +++ b/config.c @@ -135,3 +135,21 @@ load_config(const config_setting_t *config_root, FullConfig *config) config->channels = load_channels_section(channel_config); return true; } + +void +reset_config(FullConfig *config) +{ + if (!config) { + return; + } + if (config->nodes.items) { + free(config->nodes.items); + config->nodes.items = NULL; + config->nodes.length = 0; + } + if (config->channels.items) { + free(config->channels.items); + config->channels.items = NULL; + config->channels.length = 0; + } +} diff --git a/config.h b/config.h index 07f1597..8e026c7 100644 --- a/config.h +++ b/config.h @@ -33,5 +33,6 @@ typedef struct { } FullConfig; bool load_config(const config_setting_t *config_root, FullConfig *config); +void reset_config(FullConfig *config); #endif /* end of include guard: CONFIG_H_ */ diff --git a/main.c b/main.c index 914a1db..00cd458 100644 --- a/main.c +++ b/main.c @@ -85,6 +85,7 @@ main(int argc, char ** argv) free(channels); free(nodes); + reset_config(&loaded_config); config_destroy(&config_tree); io_subscription_list_deinit(&state.wait_output);