summaryrefslogtreecommitdiff
path: root/tern.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-03-21 19:48:08 -0700
committerMichael Pavone <pavone@retrodev.com>2017-03-21 19:48:08 -0700
commit4adb4b1013e6fbd057fe6158a911e7b860a78075 (patch)
tree3d91eb7e0b16dd57d7bddcfc7a0d83103593110e /tern.c
parentf8d991fc1b1ab7ae0c3d8a0307b8b2419d152278 (diff)
Don't leak a ternary tree when building the menu's initial path
Diffstat (limited to 'tern.c')
-rw-r--r--tern.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tern.c b/tern.c
index 7f772b7..2036b64 100644
--- a/tern.c
+++ b/tern.c
@@ -224,3 +224,16 @@ tern_node * tern_get_node(tern_val value)
{
return value.intval & 1 ? (tern_node *)(value.intval & ~1) : NULL;
}
+
+void tern_free(tern_node *head)
+{
+ if (head->left) {
+ tern_free(head->left);
+ }
+ if (head->right) {
+ tern_free(head->right);
+ }
+ if (head->el) {
+ tern_free(head->straight.next);
+ }
+}