From d978ba5188a5b92ea67896b2f2dc2cdadf5bf9f4 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Tue, 17 Jan 2017 18:21:11 -0500 Subject: [PATCH] memory management --- c/dsl/rxval_func_evaluators.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/c/dsl/rxval_func_evaluators.c b/c/dsl/rxval_func_evaluators.c index d68ffdda9..e56388b0c 100644 --- a/c/dsl/rxval_func_evaluators.c +++ b/c/dsl/rxval_func_evaluators.c @@ -46,9 +46,11 @@ static void rxval_evaluator_variadic_free(rxval_evaluator_t* pxevaluator) { pstate->pargs[i]->pfree_func(pstate->pargs[i]); free(pstate->pargs); - // xxx check ephemeral ... - for (int i = 0; i < pstate->nargs; i++) - mlhmmv_xvalue_free(&pstate->pbxvals[i].xval); + for (int i = 0; i < pstate->nargs; i++) { + if (pstate->pbxvals[i].is_ephemeral) { + mlhmmv_xvalue_free(&pstate->pbxvals[i].xval); + } + } free(pstate->pbxvals); free(pstate);