[Mono-dev] Exception in runtime-invoke Wrapper

Robert Jordan robertj at gmx.net
Thu Jan 27 13:36:28 EST 2011


Hi Martin,

On 27.01.2011 18:15, Martin Däumler wrote:
> 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()'.

Please check if your Mono tree is already containing
this patch:

https://github.com/mono/mono/commit/901a2d36f9b164ebbb5e4a9753cd817e4e5d26a1

I think w/out this patch, set_Handle(IntPtr) and
GetTypeInfoCount(out uint) *might* share a signature.
I'm not sure, though.

Robert




More information about the Mono-devel-list mailing list