[runtime] Set pending, don't raise, in object.c icalls
[mono.git] / mono / metadata / marshal.c
index 00ddf5da912dcca1830770965bf33e3bb80d2e89..7eeb2587ff2f0a1646624820919cf1a36102355b 100644 (file)
@@ -2979,7 +2979,8 @@ mono_delegate_end_invoke (MonoDelegate *delegate, gpointer *params)
                mono_set_pending_exception ((MonoException*)exc);
        }
 
-       mono_method_return_message_restore (method, params, out_args);
+       mono_method_return_message_restore (method, params, out_args, &error);
+       mono_error_set_pending_exception (&error);
        return res;
 }
 
@@ -8686,7 +8687,7 @@ mono_marshal_get_isinst_with_cache (void)
 
        // return obj
        mono_mb_patch_branch (mb, positive_cache_hit_pos);
-       mono_mb_emit_ldarg (mb, 0);
+       mono_mb_emit_ldarg (mb, obj_arg_position);
        mono_mb_emit_byte (mb, CEE_RET);
 #endif