From: Bernhard Urban Date: Wed, 7 Jun 2017 16:24:17 +0000 (+0200) Subject: [interp] root domain must be used for AOT'd wrappers used by interpreter X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=b1000f0b2e7b3f1db8b9e97dcea05fa7f2078a82 [interp] root domain must be used for AOT'd wrappers used by interpreter --- diff --git a/mono/mini/mini-runtime.c b/mono/mini/mini-runtime.c index 16a77660cbb..f67497d6836 100644 --- a/mono/mini/mini-runtime.c +++ b/mono/mini/mini-runtime.c @@ -2063,7 +2063,18 @@ lookup_start: #ifdef MONO_USE_AOT_COMPILER if (opt & MONO_OPT_AOT) { - MonoDomain *domain = mono_domain_get (); + MonoDomain *domain = NULL; + + if (mono_aot_mode == MONO_AOT_MODE_INTERP && method->wrapper_type == MONO_WRAPPER_UNKNOWN) { + WrapperInfo *info = mono_marshal_get_wrapper_info (method); + g_assert (info); + if (info->subtype == WRAPPER_SUBTYPE_INTERP_IN) + /* AOT'd wrappers for interp must be owned by root domain */ + domain = mono_get_root_domain (); + } + + if (!domain) + domain = mono_domain_get (); mono_class_init (method->klass);