From 047c7d35faa441e9d73364b681e5826a7c00051f Mon Sep 17 00:00:00 2001 From: Jay Krell Date: Mon, 19 Aug 2019 02:19:10 -0700 Subject: [PATCH] [interp] Replace frame.args with frame.stack, the same except for type (#16316) Contributes to #16172. --- mono/mini/interp/interp-internals.h | 1 - mono/mini/interp/interp.c | 16 ++++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/mono/mini/interp/interp-internals.h b/mono/mini/interp/interp-internals.h index e29b9a65717..8c8a984b5cc 100644 --- a/mono/mini/interp/interp-internals.h +++ b/mono/mini/interp/interp-internals.h @@ -131,7 +131,6 @@ struct _InterpFrame { InterpFrame *parent; /* parent */ InterpMethod *imethod; /* parent */ stackval *retval; /* parent */ - char *args; char *varargs; stackval *stack_args; /* parent */ stackval *stack; diff --git a/mono/mini/interp/interp.c b/mono/mini/interp/interp.c index d0aa06110f6..4f897c91987 100644 --- a/mono/mini/interp/interp.c +++ b/mono/mini/interp/interp.c @@ -3229,16 +3229,16 @@ interp_exec_method_full (InterpFrame *frame, ThreadContext *context, FrameClause } if (!clause_args) { - frame->args = g_newa (char, imethod->alloca_size); + frame->stack = (stackval*)g_alloca (imethod->alloca_size); ip = imethod->code; } else { ip = clause_args->start_with_ip; if (clause_args->base_frame) { - frame->args = g_newa (char, imethod->alloca_size); - memcpy (frame->args, clause_args->base_frame->args, imethod->alloca_size); + frame->stack = (stackval*)g_alloca (imethod->alloca_size); + memcpy (frame->stack, clause_args->base_frame->stack, imethod->alloca_size); } } - sp = frame->stack = (stackval *) (char *) frame->args; + sp = frame->stack; vt_sp = (unsigned char *) sp + imethod->stack_size; #if DEBUG_INTERP vtalloc = vt_sp; @@ -3422,9 +3422,9 @@ interp_exec_method_full (InterpFrame *frame, ThreadContext *context, FrameClause * than the callee stack frame (at the interp level) */ if (realloc_frame) { - frame->args = g_newa (char, imethod->alloca_size); - memset (frame->args, 0, imethod->alloca_size); - sp = frame->stack = (stackval *) frame->args; + frame->stack = (stackval*)g_alloca (imethod->alloca_size); + memset (frame->stack, 0, imethod->alloca_size); + sp = frame->stack; } vt_sp = (unsigned char *) sp + imethod->stack_size; #if DEBUG_INTERP @@ -6599,7 +6599,7 @@ exit_frame: error_init_reuse (error); if (clause_args && clause_args->base_frame) - memcpy (clause_args->base_frame->args, frame->args, imethod->alloca_size); + memcpy (clause_args->base_frame->stack, frame->stack, imethod->alloca_size); if (!frame->ex && MONO_PROFILER_ENABLED (method_leave) && imethod->prof_flags & MONO_PROFILER_CALL_INSTRUMENTATION_LEAVE) { -- 2.11.4.GIT