diff options
author | Dietmar Maurer <dietmar@mono-cvs.ximian.com> | 2002-08-16 16:59:28 +0400 |
---|---|---|
committer | Dietmar Maurer <dietmar@mono-cvs.ximian.com> | 2002-08-16 16:59:28 +0400 |
commit | 62fe7b089ee4e81954652af4b5614f536d6e6f6a (patch) | |
tree | 3dd21c6f1216858333123e3e386ed438904ea547 | |
parent | 8e26f9cfaa9527d367dc5e3718cc62c1bd481ce0 (diff) |
2002-08-16 Dietmar Maurer <dietmar@ximian.com>
* appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
to the right domain.
svn path=/trunk/mono/; revision=6674
-rw-r--r-- | mono/metadata/ChangeLog | 5 | ||||
-rw-r--r-- | mono/metadata/appdomain.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 3c63f9d6aa0..9d7a77673fc 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2002-08-16 Dietmar Maurer <dietmar@ximian.com> + + * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception + to the right domain. + 2002-08-14 Dietmar Maurer <dietmar@ximian.com> * marshal.c (mono_marshal_get_runtime_invoke): unbox value types diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c index ac590f04fa5..907f0e6abc8 100644 --- a/mono/metadata/appdomain.c +++ b/mono/metadata/appdomain.c @@ -112,10 +112,14 @@ mono_runtime_invoke_in_domain (MonoDomain *domain, MonoMethod *method, void *obj res = mono_runtime_invoke (method, obj, params, real_exc); mono_domain_set (cur); - /* fixme: transfer Exception to the right domain */ + if (*real_exc) { + /* transfer Exception to the right domain */ + *real_exc = mono_domain_transfer_object (domain, cur, *real_exc); - if (*real_exc && !exc) - mono_raise_exception ((MonoException *)*real_exc); + if (!exc) + mono_raise_exception ((MonoException *)*real_exc); + + } return res; } |