X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-trampolines.c;h=6e56ed5d2a0abb6b68583cd27a25666b63d6b284;hb=243fc9e3743e862ca413e6755c8452a612e21443;hp=537a0bbfdcc22a7e95e355bedd894054188cfb8c;hpb=8a28f5d1522b1456608a1efbfa4a1f7ec6f6cef3;p=mono.git diff --git a/mono/mini/mini-trampolines.c b/mono/mini/mini-trampolines.c index 537a0bbfdcc..6e56ed5d2a0 100644 --- a/mono/mini/mini-trampolines.c +++ b/mono/mini/mini-trampolines.c @@ -1046,6 +1046,7 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tr MonoError err; MonoMethodSignature *sig; gpointer addr, compiled_method; + gboolean is_remote = FALSE; trampoline_calls ++; @@ -1064,14 +1065,15 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tr */ #ifndef DISABLE_REMOTING if (delegate->target && delegate->target->vtable->klass == mono_defaults.transparent_proxy_class) { + is_remote = TRUE; #ifndef DISABLE_COM if (((MonoTransparentProxy *)delegate->target)->remote_class->proxy_class != mono_class_get_com_object_class () && !mono_class_is_com_object (((MonoTransparentProxy *)delegate->target)->remote_class->proxy_class)) #endif method = mono_marshal_get_remoting_invoke (method); - } else + } #endif - { + if (!is_remote) { sig = tramp_info->sig; if (!(sig && method == tramp_info->method)) { mono_error_init (&err);