Merge pull request #2680 from lambdageek/dev/reflection-no-loadererror
[mono.git] / mono / metadata / cominterop.c
index a22b2c18de41ae559d216a60012a3181b14b7592..2adee418f37749a9f80db8f8f49a95e75d0b8640 100644 (file)
@@ -1630,7 +1630,9 @@ ves_icall_System_ComObject_CreateRCW (MonoReflectionType *type)
         * is called by the corresponding real proxy to create the real RCW.
         * Constructor does not need to be called. Will be called later.
        */
-       obj = mono_object_new_alloc_specific_checked (mono_class_vtable_full (domain, klass, TRUE), &error);
+       MonoVTable *vtable = mono_class_vtable_full (domain, klass, &error);
+       mono_error_raise_exception (&error);
+       obj = mono_object_new_alloc_specific_checked (vtable, &error);
        mono_error_raise_exception (&error);
 
        return obj;
@@ -1906,7 +1908,8 @@ cominterop_get_ccw (MonoObject* object, MonoClass* itf)
                g_hash_table_insert (ccw_hash, GINT_TO_POINTER (mono_object_hash (object)), ccw_list);
                mono_cominterop_unlock ();
                /* register for finalization to clean up ccw */
-               mono_object_register_finalizer (object);
+               mono_object_register_finalizer (object, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
        }
 
        cinfo = mono_custom_attrs_from_class_checked (itf, &error);