valgrind findings

This commit is contained in:
John Kerl 2016-12-25 09:41:17 -05:00
parent 3c2ee7230e
commit ccc9c118ee

View file

@ -1153,11 +1153,15 @@ static rxval_evaluator_t* construct_builtin_function_callsite_xevaluator(
pargs[i] = rxval_evaluator_alloc_from_ast(pchild, pfmgr, type_inferencing, context_flags);
}
pxevaluator = fmgr_alloc_xevaluator_from_variadic_func_name(function_name, pargs, nargs);
// xxx free args if xeval is null
} else if (user_provided_arity == 1) {
mlr_dsl_ast_node_t* parg1_node = pnode->pchildren->phead->pvvalue;
rxval_evaluator_t* parg1 = rxval_evaluator_alloc_from_ast(parg1_node, pfmgr, type_inferencing, context_flags);
pxevaluator = fmgr_alloc_xevaluator_from_unary_func_name(function_name, parg1);
if (pxevaluator == NULL) { // xxx gross to alloc & free right away like this ...
parg1->pfree_func(parg1);
}
} else if (user_provided_arity == 2) {
mlr_dsl_ast_node_t* parg1_node = pnode->pchildren->phead->pvvalue;
@ -1165,6 +1169,10 @@ static rxval_evaluator_t* construct_builtin_function_callsite_xevaluator(
rxval_evaluator_t* parg1 = rxval_evaluator_alloc_from_ast(parg1_node, pfmgr, type_inferencing, context_flags);
rxval_evaluator_t* parg2 = rxval_evaluator_alloc_from_ast(parg2_node, pfmgr, type_inferencing, context_flags);
pxevaluator = fmgr_alloc_xevaluator_from_binary_func_name(function_name, parg1, parg2);
if (pxevaluator == NULL) { // xxx gross to alloc & free right away like this ...
parg1->pfree_func(parg1);
parg2->pfree_func(parg2);
}
} else if (user_provided_arity == 3) {
mlr_dsl_ast_node_t* parg1_node = pnode->pchildren->phead->pvvalue;
@ -1174,7 +1182,11 @@ static rxval_evaluator_t* construct_builtin_function_callsite_xevaluator(
rxval_evaluator_t* parg2 = rxval_evaluator_alloc_from_ast(parg2_node, pfmgr, type_inferencing, context_flags);
rxval_evaluator_t* parg3 = rxval_evaluator_alloc_from_ast(parg3_node, pfmgr, type_inferencing, context_flags);
pxevaluator = fmgr_alloc_xevaluator_from_ternary_func_name(function_name, parg1, parg2, parg3);
if (pxevaluator == NULL) { // xxx gross to alloc & free right away like this ...
parg1->pfree_func(parg1);
parg2->pfree_func(parg2);
parg3->pfree_func(parg3);
}
}
// xxx arity check ...