{
xlat_action_t xa;
xlat_thread_inst_t *t;
- fr_value_box_list_t result_copy;
t = xlat_thread_instance_find(node);
fr_assert(t);
VALUE_BOX_LIST_VERIFY(result);
- /*
- * Always need to init and free the
- * copy list as debug level could change
- * when the xlat function executes.
- */
- fr_value_box_list_init(&result_copy);
+ if (RDEBUG_ENABLED2) {
+ REXDENT();
+ xlat_debug_log_expansion(request, *in, result, __LINE__);
+ RINDENT();
+ }
- /*
- * Need to copy the input list in case
- * the async function mucks with it.
- */
- if (RDEBUG_ENABLED2) fr_value_box_list_acopy(unlang_interpret_frame_talloc_ctx(request), &result_copy, result);
xa = xlat_process_args(ctx, result, request, node);
if (xa == XLAT_ACTION_FAIL) {
- fr_value_box_list_talloc_free(&result_copy);
return xa;
}
request, result);
VALUE_BOX_LIST_VERIFY(result);
- if (RDEBUG_ENABLED2) {
- REXDENT();
- xlat_debug_log_expansion(request, *in, &result_copy, __LINE__);
- RINDENT();
- }
- fr_value_box_list_talloc_free(&result_copy);
-
switch (xa) {
case XLAT_ACTION_FAIL:
return xa;