[reflection] Better error behavior for API functions
authorAleksey Kliger <aleksey@xamarin.com>
Wed, 10 Feb 2016 00:35:11 +0000 (19:35 -0500)
committerAleksey Kliger <aleksey@xamarin.com>
Thu, 11 Feb 2016 15:28:27 +0000 (10:28 -0500)
mono_assembly_get_object and mono_module_file_get_object should return
NULL on failure without raising an exception.

mono/metadata/reflection.c

index 7786598405280f56a2659bffba7de06af1edb0be..d568f3614d8bbd3d39c51ddd8efda9557aac6add 100644 (file)
@@ -6661,12 +6661,11 @@ mono_assembly_get_object (MonoDomain *domain, MonoAssembly *assembly)
        MonoError error;
        MonoReflectionAssembly *result;
        result = mono_assembly_get_object_checked (domain, assembly, &error);
-       if (!result)
-               mono_error_set_pending_exception (&error);
+       mono_error_cleanup (&error); /* FIXME new API that doesn't swallow the error */
        return result;
 }
 /*
- * mono_assembly_get_object:
+ * mono_assembly_get_object_checked:
  * @domain: an app domain
  * @assembly: an assembly
  *
@@ -6764,7 +6763,7 @@ mono_module_file_get_object (MonoDomain *domain, MonoImage *image, int table_ind
        MonoError error;
        MonoReflectionModule *result;
        result = mono_module_file_get_object_checked (domain, image, table_index, &error);
-       mono_error_raise_exception (&error);
+       mono_error_cleanup (&error); /* FIXME new API that doesn't swallow the error */
        return result;
 }