[Mono-dev] Exception in runtime-invoke Wrapper

Martin Däumler mdae at cs.tu-chemnitz.de
Thu Jan 27 12:15:15 EST 2011


Hello Robert,

thank you for your answer!

On 24.01.2011 18:08, Robert Jordan wrote:

> You may want to look at how Mono is handling those
> wrappers with its full-AOT subsystem.

Actually, my pre-compilation code bases on the Full-AOT
code of Mono 2.6.1. Particularly, it uses code of
'collect_methods()' and 'add_wrappers()'. Instead
of calling 'add_method()' in order to add a chosen
method to the AOT-compile structure, my pre-compilation
code calls 'mono_compile_method()' in order to pre-compile
the method. Quite simple. However, the signature sharing
seems to work not properly for my purposes. In
'mono_marshal_get_runtime_invoke()' the 'runtime_invoke_cache'
returns one wrapper for different call signature, e.g.,
for 'System.Threading.WaitHandle:set_Handle()' and
'System.Attribute:System.Runtime.InteropServices._Attribute.GetTypeInfoCount()'.

As far as I see, the code of 'add_wrappers()' and
'mono_marshal_get_runtime_invoke() 'is nearly
the same in Mono 2.8.2 (which supports Full-AOT for
x86) and it seems to work there. Does the signature
comparison function have changed since Mono 2.6.1?


With kind regards,
Martin Däumler


More information about the Mono-devel-list mailing list