diff --git a/src/mono/mono/mini/interp/transform.c b/src/mono/mono/mini/interp/transform.c index 88f386802cc2a..8c939e4b8ccfb 100644 --- a/src/mono/mono/mini/interp/transform.c +++ b/src/mono/mono/mini/interp/transform.c @@ -5143,7 +5143,7 @@ generate_code (TransformData *td, MonoMethod *method, MonoMethodHeader *header, arg_locals = (guint32*) g_malloc ((!!signature->hasthis + signature->param_count) * sizeof (guint32)); /* Allocate locals to store inlined method args from stack */ for (int i = signature->param_count - 1; i >= 0; i--) { - MonoType *type = td->vars [td->sp [-1].var].type; + MonoType *type = get_type_from_stack (td->sp [-1].type, td->sp [-1].klass); local = interp_create_var (td, type); arg_locals [i + !!signature->hasthis] = local; store_local (td, local);