From dce97b285d2e30d84e2a42416e32a367a12180ac Mon Sep 17 00:00:00 2001 From: John Kerl Date: Mon, 28 Nov 2016 08:54:37 -0500 Subject: [PATCH] neaten --- c/mapping/function_manager.c | 6 ++++-- c/mapping/function_manager.h | 4 ++-- c/mapping/rval_expr_evaluators.c | 2 +- c/mapping/rxval_expr_evaluators.c | 9 +++------ 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/c/mapping/function_manager.c b/c/mapping/function_manager.c index a3f87fc7b..4cb07c20d 100644 --- a/c/mapping/function_manager.c +++ b/c/mapping/function_manager.c @@ -601,7 +601,7 @@ static void unresolved_callsite_free(unresolved_func_callsite_state_t* pstate) { } // ---------------------------------------------------------------- -rval_evaluator_t* fmgr_alloc_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, +rval_evaluator_t* fmgr_alloc_provisional_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, int type_inferencing, int context_flags) { char* function_name = pnode->text; @@ -623,7 +623,7 @@ rval_evaluator_t* fmgr_alloc_from_operator_or_function_call(fmgr_t* pfmgr, mlr_d } // xxx XXX merge code dup -rxval_evaluator_t* fmgr_xalloc_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, +rxval_evaluator_t* fmgr_xalloc_provisional_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, int type_inferencing, int context_flags) { char* function_name = pnode->text; @@ -637,6 +637,8 @@ rxval_evaluator_t* fmgr_xalloc_from_operator_or_function_call(fmgr_t* pfmgr, mlr pxev->pprocess_func = NULL; pxev->pfree_func = NULL; + // xxx needs a wrapping-rval here + // Remember this callsite to a function which may or may not have been defined yet. // Then later we can resolve them to point to UDF bodies which have been defined. sllv_append(pfmgr->pfunc_callsite_xevaluators_to_resolve, pxev); diff --git a/c/mapping/function_manager.h b/c/mapping/function_manager.h index 745bc2bf1..79dfb7e69 100644 --- a/c/mapping/function_manager.h +++ b/c/mapping/function_manager.h @@ -46,10 +46,10 @@ void fmgr_free(fmgr_t* pfmgr); void fmgr_install_udf(fmgr_t* pfmgr, udf_defsite_state_t* pdefsitate_state); // Callsites as defined by AST nodes, with scalar-context return values -rval_evaluator_t* fmgr_alloc_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, +rval_evaluator_t* fmgr_alloc_provisional_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, int type_inferencing, int context_flags); // Callsites as defined by AST nodes, with map-context return values -rxval_evaluator_t* fmgr_xalloc_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, +rxval_evaluator_t* fmgr_xalloc_provisional_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode, int type_inferencing, int context_flags); // xxx make a mark-callsite-for-resolve method diff --git a/c/mapping/rval_expr_evaluators.c b/c/mapping/rval_expr_evaluators.c index 247cb17ce..d88b1f994 100644 --- a/c/mapping/rval_expr_evaluators.c +++ b/c/mapping/rval_expr_evaluators.c @@ -100,7 +100,7 @@ rval_evaluator_t* rval_evaluator_alloc_from_ast(mlr_dsl_ast_node_t* pnode, fmgr_ } else { MLR_INTERNAL_CODING_ERROR_IF((pnode->type != MD_AST_NODE_TYPE_FUNCTION_CALLSITE) && (pnode->type != MD_AST_NODE_TYPE_OPERATOR)); - return fmgr_alloc_from_operator_or_function_call(pfmgr, pnode, type_inferencing, context_flags); + return fmgr_alloc_provisional_from_operator_or_function_call(pfmgr, pnode, type_inferencing, context_flags); } } diff --git a/c/mapping/rxval_expr_evaluators.c b/c/mapping/rxval_expr_evaluators.c index 61baa241e..cc300c45b 100644 --- a/c/mapping/rxval_expr_evaluators.c +++ b/c/mapping/rxval_expr_evaluators.c @@ -57,8 +57,9 @@ rxval_evaluator_t* rxval_evaluator_alloc_from_ast(mlr_dsl_ast_node_t* pnode, fmg break; case MD_AST_NODE_TYPE_FUNCTION_CALLSITE: - return rxval_evaluator_alloc_from_function_callsite( - pnode, pfmgr, type_inferencing, context_flags); + return rxval_evaluator_alloc_from_function_callsite(pnode, pfmgr, type_inferencing, context_flags); + // xxx temp + // return fmgr_xalloc_provisional_from_operator_or_function_call(pfmgr, pnode, type_inferencing, context_flags); break; default: @@ -497,7 +498,6 @@ rxval_evaluator_t* rxval_evaluator_alloc_from_full_srec( // ================================================================ typedef struct _rxval_evaluator_from_function_callsite_state_t { rval_evaluator_t* prval_evaluator; // xxx temp - // xxx temp rxval_evaluator_t* pxevaluator; } rxval_evaluator_from_function_callsite_state_t; static boxed_xval_t rxval_evaluator_from_function_callsite_func(void* pvstate, variables_t* pvars) { @@ -514,7 +514,6 @@ static boxed_xval_t rxval_evaluator_from_function_callsite_func(void* pvstate, v static void rxval_evaluator_from_function_callsite_free(rxval_evaluator_t* prxval_evaluator) { rxval_evaluator_from_function_callsite_state_t* pstate = prxval_evaluator->pvstate; pstate->prval_evaluator->pfree_func(pstate->prval_evaluator); - // xxx temp pstate->pxevaluator->pfree_func(pstate->pxevaluator); free(pstate); free(prxval_evaluator); } @@ -526,8 +525,6 @@ rxval_evaluator_t* rxval_evaluator_alloc_from_function_callsite( sizeof(rxval_evaluator_from_function_callsite_state_t)); pstate->prval_evaluator = rval_evaluator_alloc_from_ast(pnode, pfmgr, type_inferencing, context_flags); - // xxx temp pstate->pxevaluator = fmgr_xalloc_from_operator_or_function_call(pfmgr, pnode, - // xxx temp type_inferencing, context_flags); rxval_evaluator_t* prxval_evaluator = mlr_malloc_or_die(sizeof(rxval_evaluator_t));