1
0
forked from GitHub/gf-core

fix the memory leaks in the linearizer

This commit is contained in:
krangelov
2021-12-01 10:30:08 +01:00
parent 483f93822c
commit 8e19b7d31c
2 changed files with 6 additions and 3 deletions

View File

@@ -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;

View File

@@ -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);
};