Merge pull request #2674 from lambdageek/dev/monoerror-mono_field_get_value_object
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 8 Mar 2016 22:20:43 +0000 (22:20 +0000)
committermonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 8 Mar 2016 22:20:43 +0000 (22:20 +0000)
Use MonoError for mono_field_get_value_object

Mark it external only.  Runtime should use mono_field_get_value_object_checked.

1  2 
mono/metadata/object.c
mono/metadata/reflection.c

index 41a7d5a3bc7402dec2fd7039485f89ef495f1ab3,9d1b12e3e7970a4d37499aa8fd02f4a9d4e043c0..0c8a422dc2a563c9135afb657d3a52e69110b914
@@@ -4342,11 -4363,21 +4363,14 @@@ mono_unhandled_exception (MonoObject *e
        current_domain = mono_domain_get ();
        root_domain = mono_get_root_domain ();
  
-       root_appdomain_delegate = mono_field_get_value_object (root_domain, field, (MonoObject*) root_domain->domain);
-       if (current_domain != root_domain)
-               current_appdomain_delegate = mono_field_get_value_object (current_domain, field, (MonoObject*) current_domain->domain);
+       root_appdomain_delegate = mono_field_get_value_object_checked (root_domain, field, (MonoObject*) root_domain->domain, &error);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
+       if (current_domain != root_domain) {
+               current_appdomain_delegate = mono_field_get_value_object_checked (current_domain, field, (MonoObject*) current_domain->domain, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
+       }
  
 -      /* set exitcode only if we will abort the process */
        if (!current_appdomain_delegate && !root_appdomain_delegate) {
 -              if ((main_thread && mono_thread_internal_current () == main_thread->internal_thread)
 -                   || mono_runtime_unhandled_exception_policy_get () == MONO_UNHANDLED_POLICY_CURRENT)
 -              {
 -                      mono_environment_exitcode_set (1);
 -              }
 -
                mono_print_unhandled_exception (exc);
        } else {
                if (root_appdomain_delegate)
Simple merge