From a2dabd6a1787166b2d11862bab1d273cd51f3a0d Mon Sep 17 00:00:00 2001 From: Rodrigo Kumpera Date: Sun, 11 Jul 2010 16:46:16 +0000 Subject: [PATCH] 2010-07-11 Rodrigo Kumpera * mini.c (mono_jit_compile_method_inner): Don't bomb out if we don't support a given runtime implemented method. svn path=/trunk/mono/; revision=160205 --- mono/mini/ChangeLog | 5 +++++ mono/mini/mini.c | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog index 94439f1ed10..adefca52665 100755 --- a/mono/mini/ChangeLog +++ b/mono/mini/ChangeLog @@ -1,3 +1,8 @@ +2010-07-11 Rodrigo Kumpera + + * mini.c (mono_jit_compile_method_inner): Don't bomb out if we don't + support a given runtime implemented method. + 2010-07-10 Mark Probst * mini-darwin.c: Register the exception thread with the GC. diff --git a/mono/mini/mini.c b/mono/mini/mini.c index c783ace7b03..e72efbd7136 100644 --- a/mono/mini/mini.c +++ b/mono/mini/mini.c @@ -4658,6 +4658,7 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in //mono_debug_add_wrapper (method, nm); } else if ((method->iflags & METHOD_IMPL_ATTRIBUTE_RUNTIME)) { const char *name = method->name; + char *full_name, *msg; MonoMethod *nm; if (method->klass->parent == mono_defaults.multicastdelegate_class) { @@ -4690,6 +4691,12 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in return mono_get_addr_from_ftnptr (mono_compile_method (nm)); } } + + full_name = mono_method_full_name (method, TRUE); + msg = g_strdup_printf ("Unrecognizable runtime implemented method '%s'", full_name); + *jit_ex = mono_exception_from_name_msg (mono_defaults.corlib, "System", "InvalidProgramException", msg); + g_free (full_name); + g_free (msg); return NULL; } -- 2.25.1