From: Zoltan Varga Date: Sun, 1 Mar 2015 05:47:02 +0000 (-0500) Subject: [jit] Move aot method loading to mono_jit_compile_method_with_opt (). X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=2d8af166633a3f57bde7333d0b91fd71edf63e1b;p=mono.git [jit] Move aot method loading to mono_jit_compile_method_with_opt (). --- diff --git a/mono/mini/mini-runtime.c b/mono/mini/mini-runtime.c index 9c1719ec8a1..cb572175830 100755 --- a/mono/mini/mini-runtime.c +++ b/mono/mini/mini-runtime.c @@ -1996,7 +1996,7 @@ mono_jit_compile_method_with_opt (MonoMethod *method, guint32 opt, MonoException { MonoDomain *target_domain, *domain = mono_domain_get (); MonoJitInfo *info; - gpointer code, p; + gpointer code = NULL, p; MonoJitInfo *ji; MonoJitICallInfo *callinfo = NULL; WrapperInfo *winfo = NULL; @@ -2063,7 +2063,24 @@ mono_jit_compile_method_with_opt (MonoMethod *method, guint32 opt, MonoException } } - code = mono_jit_compile_method_inner (method, target_domain, opt, ex); +#ifdef MONO_USE_AOT_COMPILER + if (opt & MONO_OPT_AOT) { + MonoDomain *domain = mono_domain_get (); + + mono_class_init (method->klass); + + if ((code = mono_aot_get_method (domain, method))) { + MonoVTable *vtable; + + vtable = mono_class_vtable (domain, method->klass); + g_assert (vtable); + mono_runtime_class_init (vtable); + } + } +#endif + + if (!code) + code = mono_jit_compile_method_inner (method, target_domain, opt, ex); if (!code) return NULL; diff --git a/mono/mini/mini.c b/mono/mini/mini.c index c947704bf96..ec608f23add 100755 --- a/mono/mini/mini.c +++ b/mono/mini/mini.c @@ -4048,22 +4048,6 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in GTimer *jit_timer; MonoMethod *prof_method, *shared; -#ifdef MONO_USE_AOT_COMPILER - if (opt & MONO_OPT_AOT) { - MonoDomain *domain = mono_domain_get (); - - mono_class_init (method->klass); - - if ((code = mono_aot_get_method (domain, method))) { - vtable = mono_class_vtable (domain, method->klass); - g_assert (vtable); - mono_runtime_class_init (vtable); - - return code; - } - } -#endif - if ((method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL) || (method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL)) { MonoMethod *nm;