Fix memory leak in ast.
If a node has children the array of children was never freed.
This commit is contained in:
parent
f4638d43b6
commit
a09d591e86
@ -26,6 +26,7 @@ void ast_node_free(ast_node_t *node) {
|
|||||||
if (node->children) {
|
if (node->children) {
|
||||||
for (size_t i = 0; i < node->len; ++i)
|
for (size_t i = 0; i < node->len; ++i)
|
||||||
ast_node_free(node->children[i]);
|
ast_node_free(node->children[i]);
|
||||||
|
free(node->children);
|
||||||
}
|
}
|
||||||
|
|
||||||
ast_node_free_value(node);
|
ast_node_free_value(node);
|
||||||
|
@ -17,7 +17,6 @@ typedef enum node_id {
|
|||||||
NODE_INSTRUCTION,
|
NODE_INSTRUCTION,
|
||||||
NODE_OPERANDS,
|
NODE_OPERANDS,
|
||||||
NODE_OPERAND,
|
NODE_OPERAND,
|
||||||
NODE_REGISTER,
|
|
||||||
NODE_IMMEDIATE,
|
NODE_IMMEDIATE,
|
||||||
NODE_MEMORY,
|
NODE_MEMORY,
|
||||||
NODE_NUMBER,
|
NODE_NUMBER,
|
||||||
@ -28,6 +27,10 @@ typedef enum node_id {
|
|||||||
NODE_REGISTER_OFFSET,
|
NODE_REGISTER_OFFSET,
|
||||||
NODE_PLUS_OR_MINUS,
|
NODE_PLUS_OR_MINUS,
|
||||||
|
|
||||||
|
// Validated primitives
|
||||||
|
NODE_REGISTER,
|
||||||
|
NODE_SECTION,
|
||||||
|
|
||||||
// Primitive nodes
|
// Primitive nodes
|
||||||
NODE_IDENTIFIER,
|
NODE_IDENTIFIER,
|
||||||
NODE_DECIMAL,
|
NODE_DECIMAL,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user