[verifier] Avoid double init of metadata when using pedump.
authorRodrigo Kumpera <kumpera@gmail.com>
Tue, 15 Aug 2017 21:32:38 +0000 (14:32 -0700)
committerRodrigo Kumpera <kumpera@gmail.com>
Tue, 15 Aug 2017 21:32:38 +0000 (14:32 -0700)
This is a workaround for the larger problem of it using a non-standard init sequence.

Tracked as https://bugzilla.xamarin.com/show_bug.cgi?id=58793

mono/metadata/metadata.c

index b41dbf4e8186eff36f490f2a4d4844b032c73295..0ba52ce0b7359d578d94ed18991d85ce6a2cbb15 100644 (file)
@@ -1641,6 +1641,16 @@ mono_metadata_init (void)
 {
        int i;
 
+       /* We guard against double initialization due to how pedump in verification mode works.
+       Until runtime initialization is properly factored to work with what it needs we need workarounds like this.
+       FIXME: https://bugzilla.xamarin.com/show_bug.cgi?id=58793
+       */
+       static gboolean inited;
+
+       if (inited)
+               return;
+       inited = TRUE;
+
        type_cache = g_hash_table_new (mono_type_hash, mono_type_equal);
 
        for (i = 0; i < NBUILTIN_TYPES (); ++i)