Pass signatures instead of methods to mono_arch_get_gsharedvt_call_info ().
[mono.git] / mono / mini / mini-trampolines.c
index 17c59b4ce2c3dd658bc33ecc64beca53d17eb67f..06525fec08564e1b83811010aa122083be058743 100644 (file)
@@ -346,13 +346,17 @@ mini_add_method_trampoline (MonoMethod *orig_method, MonoMethod *m, gpointer com
                gpointer info;
                MonoMethod *wrapper;
                MonoGenericSharingContext *gsctx;
+               MonoMethodSignature *sig, *gsig;
 
                /* Here m is a generic instance, while ji->method is the gsharedvt method implementing it */
 
                /* Call from normal/gshared code to gsharedvt code with variable signature */
                gsctx = mono_jit_info_get_generic_sharing_context (ji);
 
-               info = mono_arch_get_gsharedvt_call_info (compiled_method, m, ji->method, gsctx, TRUE, -1);
+               sig = mono_method_signature (m);
+               gsig = mono_method_signature (ji->method); 
+
+               info = mono_arch_get_gsharedvt_call_info (compiled_method, sig, gsig, gsctx, TRUE, -1);
 
                if (!tramp_addr) {
                        wrapper = mono_marshal_get_gsharedvt_in_wrapper ();