[Mono-dev] Patch: Fix fast generic virtual method calls with remoting

Rodrigo Kumpera kumpera at gmail.com
Wed Oct 8 18:17:23 EDT 2008

Hi Mark,

@@ -1991,7 +1990,7 @@
             iter = NULL;
             j = 0;
             while ((cm = mono_class_get_methods (interf, &iter)))
-                pvt->vtable [slot + j++] = mono_method_signature
(cm)->generic_param_count ? cm : arch_create_remoting_trampoline (cm,
+                pvt->vtable [slot + j++] = mono_method_signature
(cm)->generic_param_count ? cm : arch_create_remoting_trampoline (domain,
cm, target_type);

             slot += mono_class_num_methods (interf);

Why this part of the vtable doesn't receive a remoting wrapper?

These checks were added by Robert Jordan in r85526 to fix

Looks like your patch reverts Robert's changes and use a new trampoline
instead, thou there are other changes in object.c that haven't been changed
back and seen related to virtual generic methods.


2008/10/8 Mark Probst <mark.probst at gmail.com>

> Hi,
> The attached patch fixes the Remoting regressions that were caused by
> the fast generic virtual method invoking code.  The problem is that
> remoting methods need a remoting wrapper, but invoking a generic method
> via the vtable cannot provide that wrapper, so I added a new trampoline
> type which does that.
> Paolo: Please review.
> Mark
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20081008/9d3af858/attachment-0001.html 

More information about the Mono-devel-list mailing list