* interp.c: Keep alloca()-d data on a free list to prevent stack
overflow errors when valuetypes are allocated in a loop. Fixes
#27420. Is the new code still faster than using malloc/free ?
* interp.c (interp_mono_runtime_invoke): Unbox value type instances
before calling the method. Fixes appdomain2.exe.
* interp.c: Fix warnings.
* interp.c: Report unhandled exceptions correctly.
* interp.c: Implement CEE_ISINST and CEE_CASTCLASS using
mono_object_isinst. Fixes bug #45539 and reflection-enum.exe.
svn path=/trunk/mono/; revision=16170
overflow errors when valuetypes are allocated in a loop. Fixes
#27420. Is the new code still faster than using malloc/free ?
+ * interp.c (interp_mono_runtime_invoke): Unbox value type instances
+ before calling the method. Fixes appdomain2.exe.
+
* interp.c: Fix warnings.
* interp.c: Report unhandled exceptions correctly.
}
}
+ if (method->klass->valuetype)
+ /* Unbox the instance, since valuetype methods expect an interior pointer. */
+ obj = mono_object_unbox (obj);
+
/* chain with managed parent if any */
parent = TlsGetValue (frame_thread_id);
INIT_FRAME(&frame,parent,obj,args,&result,method);