Fix memory leak in AATree string trees

This commit is contained in:
Gustaf Alhäll 2025-12-06 15:37:02 +01:00 committed by NepDisk
parent 84ec8756b0
commit ec656dbf28

View file

@ -58,17 +58,19 @@ aatree_t *M_AATreeAlloc(UINT32 flags)
return aatree;
}
static void M_AATreeFree_Node(aatree_node_t *node)
static void M_AATreeFree_Node(aatree_node_t *node, bool is_string)
{
if (node->left) M_AATreeFree_Node(node->left);
if (node->right) M_AATreeFree_Node(node->right);
if (node->left) M_AATreeFree_Node(node->left, is_string);
if (node->right) M_AATreeFree_Node(node->right, is_string);
if (is_string)
Z_Free(node->value);
Z_Free(node);
}
void M_AATreeFree(aatree_t *aatree)
{
if (aatree->root)
M_AATreeFree_Node(aatree->root);
M_AATreeFree_Node(aatree->root, (aatree->flags & AATREE_STRING) == AATREE_STRING);
Z_Free(aatree);
}