2008-04-12 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Sat, 12 Apr 2008 06:18:32 +0000 (06:18 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sat, 12 Apr 2008 06:18:32 +0000 (06:18 -0000)
* assembly.c (mono_assembly_load_from_full): Do the check for loading other
mscorlibs for the non-refonly case as well.

* image.c (do_mono_image_load): Remove the mscorlib check, it is already done
in mono_assembly_load_from_full (). Fixes #378924.

svn path=/trunk/mono/; revision=100508

mono/metadata/ChangeLog
mono/metadata/assembly.c
mono/metadata/image.c

index 50b439ffaa4acfea471668a1fde24cb779794f46..7c6e3cd322521b5a405cede9eb8efbe851d4bdc7 100644 (file)
@@ -1,3 +1,11 @@
+2008-04-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * assembly.c (mono_assembly_load_from_full): Do the check for loading other
+       mscorlibs for the non-refonly case as well.
+
+       * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
+       in mono_assembly_load_from_full (). Fixes #378924.
+
 2008-04-11  Geoff Norton  <gnorton@novell.com>
 
        * icall.c: The global extern environ doesn't exist on Mac.  We
index a361c31714f5f71017fb57f08f3df2e510edec0c..0314d2e585d0c7e443df5c6d57bd1388de16f02b 100644 (file)
@@ -1440,11 +1440,11 @@ mono_assembly_load_from_full (MonoImage *image, const char*fname,
 
        mono_assembly_fill_assembly_name (image, &ass->aname);
 
-       if (refonly && strcmp (ass->aname.name, "mscorlib") == 0) {
+       if (mono_defaults.corlib && strcmp (ass->aname.name, "mscorlib") == 0) {
                // MS.NET doesn't support loading other mscorlibs
                g_free (ass);
                g_free (base_dir);
-               mono_image_close (image);
+               mono_image_addref (mono_defaults.corlib);
                *status = MONO_IMAGE_OK;
                return mono_defaults.corlib->assembly;
        }
index b5ca1e9e665b34ed4cd6f136b8ce630b2da70845..adba56959e9ee21656e7345ee94d895ac2181023 100644 (file)
@@ -843,14 +843,6 @@ do_mono_image_load (MonoImage *image, MonoImageOpenStatus *status,
                image->assembly_name = mono_metadata_string_heap (image, 
                        mono_metadata_decode_row_col (&image->tables [MONO_TABLE_ASSEMBLY],
                                        0, MONO_ASSEMBLY_NAME));
-               /* we don't allow loading different mscorlibs */
-               if (strcmp (image->assembly_name, "mscorlib") == 0 && mono_defaults.corlib) {
-                       if (status)
-                               *status = MONO_IMAGE_OK;
-                       mono_image_close (image);
-                       mono_image_addref (mono_defaults.corlib);
-                       return mono_defaults.corlib;
-               }
        }
 
        image->module_name = mono_metadata_string_heap (image,