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