mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-22 15:37:59 +00:00
valgrind findings
This commit is contained in:
parent
3c2ee7230e
commit
ccc9c118ee
1 changed files with 13 additions and 1 deletions
|
|
@ -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 ...
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue