From c28ffe6e76e9b1c625ce7b2d68652e169fe7c1bb Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Sun, 23 May 2021 15:23:55 +0200 Subject: [PATCH] CMD: Free the command trie at the end of the program --- src/net/listen.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/net/listen.c b/src/net/listen.c index 229055fa..a252d517 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -63,6 +63,18 @@ cmd_trie_new(void) return ret; } +PRIVATE_FUNCTION void +cmd_trie_free(struct cmd_trie_node *root) +{ + for (size_t i = 0; i < CHARS_MAX; ++i) { + if (root->children[i] != NULL) { + cmd_trie_free(root->children[i]); + } + } + + free(root); +} + PRIVATE_FUNCTION void cmd_trie_insert(struct cmd_trie_node *root, const char *signed_cmd_name, void (*cmd_ptr)(void), LKT_COMMAND_TYPE cmd_type) @@ -204,6 +216,7 @@ cmd_trie_print(struct cmd_trie_node *root) CONSTRUCTOR_FUNCTION ___cmd_trie_init(void) { + LOG_INFO("CMD_TRIE", "Init the command trie"); cmd_trie_root = cmd_trie_new(); cmd_trie_insert(cmd_trie_root, "next", FUNCTION_POINTER(command_next), LKT_COMMAND_SIMPLE); cmd_trie_print(cmd_trie_root); @@ -212,6 +225,8 @@ ___cmd_trie_init(void) DESTRUCTOR_FUNCTION ___cmd_trie_deinit(void) { + LOG_INFO("CMD_TRIE", "Free the command trie"); + cmd_trie_free(cmd_trie_root); } /* Client structure */ -- GitLab