[Mono-list] NullReferenceException when calling thunk
    Robert Jordan 
    robertj at gmx.net
       
    Thu Jan 24 09:55:53 UTC 2013
    
    
  
On 23.01.2013 06:43, tomason wrote:
> MonoClass *mclass = mono_object_get_class(mobj);
> g_mmethod = mono_class_get_method_from_name(mclass, "Add", 2);
> g_mthunk = (MonoAddFunc)mono_method_get_unmanaged_thunk(g_mmethod);
>
> Where MonoAddFunc is defined like this:
> typedef float (*MonoAddFunc)(MonoObject*, float, float);
>
> This is the C# Add method:
>
> public float Add(float a, float b) {
> 	return a + b;
> }
>
Oops, I didn't notice that the signature doesn't include
the mandatory MonoException** pointer. It should read:
typedef float (*MonoAddFunc)(MonoObject*, float, float,
	MonoException**);
MonoException* ex;
g_mthunk(g_mobj, 0.00001f, 0.00002f, &ex);
if (ex) {
	// handle exception
}
That's why your test was failing.
Robert
    
    
More information about the Mono-list
mailing list