[Mono-bugs] [Bug 560191] abort in mono_method_get_header while JITting a verified method

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Dec 14 13:41:39 EST 2009



--- Comment #1 from Sebastien Pouliot <spouliot at novell.com> 2009-12-14 18:41:38 UTC ---
Moving the assert after the verifier check (make sense since 'loc' is not used
to call the verifier) fix this test case. 

However it would make sense to return NULL instead of the assert (just like
it's done if the verifier fails). Actually the above assert (for the table)
could be changed to return NULL too.

This is one of the most common abort when --compile-all is used, so I'll try
this patch on my next run (tonight) to see if it solve "all" the cases.

Index: metadata/loader.c
--- metadata/loader.c    (revision 148393)
+++ metadata/loader.c    (working copy)
@@ -2249,13 +2249,13 @@
     idx = mono_metadata_token_index (method->token);
     img = method->klass->image;
     rva = mono_metadata_decode_row_col (&img->tables [MONO_TABLE_METHOD], idx
-    loc = mono_image_rva_map (img, rva);

-    g_assert (loc);
     if (!mono_verifier_verify_method_header (img, rva, NULL))
         return NULL;

+    loc = mono_image_rva_map (img, rva);
+    g_assert (loc);
     header = mono_metadata_parse_mh_full (img,
mono_method_get_generic_container (method), loc);

     mono_loader_lock ();

Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the mono-bugs mailing list