Compare commits

...

2 Commits

2 changed files with 4 additions and 1 deletions

View File

@ -919,6 +919,8 @@ libab_result _interpreter_run(struct interpreter_state* state, libab_tree* tree,
libab_ref_get(scope), tree->string_value, OPERATOR_POSTFIX);
result = _interpreter_call_operator(state, to_call, into, scope,
vec_index(&tree->children, 0));
} else {
libab_get_unit_value(state->ab, into);
}
if (needs_scope) {

View File

@ -48,7 +48,8 @@ int _tree_foreach_free(void* data, va_list args) {
}
int _tree_needs_free(libab_tree* tree) {
return ((tree->variant == TREE_FUN && --tree->int_value) | (tree->variant != TREE_FUN));
return ((tree->variant == TREE_FUN && --(tree->int_value) == 0) |
(tree->variant != TREE_FUN));
}
void libab_tree_free_recursive(libab_tree* tree) {