[Mono-devel-list] Trampolines...
Zoltan Varga
vargaz at gmail.com
Tue Feb 22 17:41:56 EST 2005
Hi,
> Second question: Why do we have those unbox trampolines? I understand
> that virtual methods of value types need to get an unboxed 'this'
> pointer, but why generating a trampoline for this kind of code? Can't
> this be done when the method is JITed? (As a function prologue?)
> These unbox trampolines are a pain in the arse, as you have constantly
> to check for this case and it limits code patching: I can not recompile
> virtual methods of value types..
>
It is possible to call the same virtual method with boxed and
non-boxed arguments,
like:
SomeStruct s = new SomeStruct ();
s.ToString ();
object o = s;
o.ToString ();
Both calls end up calling the same method, but in the second case, the argument
needs to be unboxed, since the this pointer points to a boxed instance, but the
method requires an unboxed one.
Zoltan
More information about the Mono-devel-list
mailing list