mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
fix the memory leaks in the linearizer
This commit is contained in:
@@ -67,9 +67,6 @@ bool PgfLinearizer::resolve()
|
||||
|
||||
ref<PgfPResult> pres = *vector_elem(node->lin->res, node->lin_index);
|
||||
|
||||
node->var_count = 0;
|
||||
node->var_values = NULL;
|
||||
|
||||
int i = 0;
|
||||
TreeNode *arg = node->args;
|
||||
while (arg != NULL) {
|
||||
@@ -134,6 +131,11 @@ bool PgfLinearizer::resolve()
|
||||
node->value = node->eval_param(&pres->param);
|
||||
break;
|
||||
}
|
||||
|
||||
// Unbind all variables
|
||||
for (size_t j = 0; j < node->var_count; j++) {
|
||||
node->var_values[j] = (size_t) -1;
|
||||
}
|
||||
}
|
||||
|
||||
node = node->next;
|
||||
|
||||
@@ -39,6 +39,7 @@ class PGF_INTERNAL_DECL PgfLinearizer : public PgfUnmarshaller {
|
||||
size_t *var_values;
|
||||
|
||||
TreeNode(PgfLinearizer *linearizer, ref<PgfConcrLin> lin);
|
||||
~TreeNode() { free(var_values); };
|
||||
size_t eval_param(PgfLParam *param);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user