Author: zoltan
Date: 2008-02-20 14:04:51 -0500 (Wed, 20 Feb 2008)
New Revision: 96287

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/assembly.c
Log:
2008-02-20  Zoltan Varga  <[EMAIL PROTECTED]>

        * assembly.c (mono_assembly_load_from_full): Return the non-refonly 
corlib for
        ref-only requests for compatibility with MS.


Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2008-02-20 18:53:27 UTC (rev 96286)
+++ trunk/mono/mono/metadata/ChangeLog  2008-02-20 19:04:51 UTC (rev 96287)
@@ -1,3 +1,8 @@
+2008-02-20  Zoltan Varga  <[EMAIL PROTECTED]>
+
+       * assembly.c (mono_assembly_load_from_full): Return the non-refonly 
corlib for
+       ref-only requests for compatibility with MS.
+
 2008-02-20  Raja R Harinath  <[EMAIL PROTECTED]>
 
        * reflection.c (mono_custom_attrs_from_method): Don't silently

Modified: trunk/mono/mono/metadata/assembly.c
===================================================================
--- trunk/mono/mono/metadata/assembly.c 2008-02-20 18:53:27 UTC (rev 96286)
+++ trunk/mono/mono/metadata/assembly.c 2008-02-20 19:04:51 UTC (rev 96287)
@@ -1426,6 +1426,14 @@
 
        mono_assembly_fill_assembly_name (image, &ass->aname);
 
+       if (refonly && strcmp (ass->aname.name, "mscorlib") == 0) {
+               // MS.NET doesn't support loading other mscorlibs
+               g_free (ass);
+               mono_image_close (image);
+               *status = MONO_IMAGE_OK;
+               return mono_defaults.corlib->assembly;
+       }
+
        /* Add a non-temporary reference because of ass->image */
        mono_image_addref (image);
 
@@ -2165,10 +2173,11 @@
        return corlib;
 }
 
-MonoAssembly* mono_assembly_load_full_nosearch (MonoAssemblyName *aname, 
-                                               const char       *basedir, 
-                                               MonoImageOpenStatus *status,
-                                               gboolean refonly)
+MonoAssembly*
+mono_assembly_load_full_nosearch (MonoAssemblyName *aname, 
+                                                                 const char    
   *basedir, 
+                                                                 
MonoImageOpenStatus *status,
+                                                                 gboolean 
refonly)
 {
        MonoAssembly *result;
        char *fullpath, *filename;

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to