X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fappdomain.c;h=2df1eeda959f4111ea31fae4651e86e19aa5bd11;hb=ef0ddf45c3081e799edcb4e95770186514b80cf1;hp=724a411d16e77262530faeae5003cf932d4dcd16;hpb=a9a485768fbb3d4fc36d781a637f5ec56da681d8;p=mono.git diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c index 724a411d16e..2df1eeda959 100644 --- a/mono/metadata/appdomain.c +++ b/mono/metadata/appdomain.c @@ -9,6 +9,7 @@ * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com) * Copyright 2004-2009 Novell, Inc (http://www.novell.com) * Copyright 2012 Xamarin Inc + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #undef ASSEMBLY_LOAD_DEBUG #include @@ -2146,10 +2147,11 @@ ves_icall_System_AppDomain_LoadAssembly (MonoAppDomain *ad, MonoString *assRef, void ves_icall_System_AppDomain_InternalUnload (gint32 domain_id) { + MonoException *exc = NULL; MonoDomain * domain = mono_domain_get_by_id (domain_id); if (NULL == domain) { - MonoException *exc = mono_get_exception_execution_engine ("Failed to unload domain, domain id not found"); + mono_get_exception_execution_engine ("Failed to unload domain, domain id not found"); mono_set_pending_exception (exc); return; } @@ -2169,7 +2171,9 @@ ves_icall_System_AppDomain_InternalUnload (gint32 domain_id) return; #endif - mono_domain_unload (domain); + mono_domain_try_unload (domain, (MonoObject**)&exc); + if (exc) + mono_set_pending_exception (exc); } gboolean @@ -2516,8 +2520,6 @@ mono_domain_unload (MonoDomain *domain) { MonoObject *exc = NULL; mono_domain_try_unload (domain, &exc); - if (exc) - mono_raise_exception ((MonoException*)exc); } static guint32