2007-05-16 Marek Habersack <mhabersack@novell.com>
[mono.git] / mono / metadata / assembly.c
index d8d739f7010ee9d0ce0e215322a002450b962370..ce67f3625ac679b101040801ac378edc8cee33d5 100644 (file)
@@ -855,6 +855,8 @@ mono_assembly_load_reference (MonoImage *image, int index)
         * it inside a critical section.
         */
        mono_assemblies_lock ();
+       if (!image->references)
+               mono_assembly_load_references (image, &status);
        reference = image->references [index];
        mono_assemblies_unlock ();
        if (reference)
@@ -932,21 +934,12 @@ void
 mono_assembly_load_references (MonoImage *image, MonoImageOpenStatus *status)
 {
        MonoTableInfo *t;
-       int i;
 
        *status = MONO_IMAGE_OK;
 
        t = &image->tables [MONO_TABLE_ASSEMBLYREF];
        
        image->references = g_new0 (MonoAssembly *, t->rows + 1);
-
-       /* resolve assembly references for modules */
-       for (i = 0; i < image->module_count; i++){
-               if (image->modules [i]) {
-                       image->modules [i]->assembly = image->assembly;
-                       mono_assembly_load_references (image->modules [i], status);
-               }
-       }
 }
 
 typedef struct AssemblyLoadHook AssemblyLoadHook;
@@ -1762,7 +1755,13 @@ mono_assembly_name_parse_full (const char *name, MonoAssemblyName *aname, gboole
                        tmp++;
                        continue;
                }
-               
+
+               if (!g_ascii_strncasecmp (value, "ProcessorArchitecture=", 22)) {
+                       /* this is ignored for now, until we can change MonoAssemblyName */
+                       tmp++;
+                       continue;
+               }
+
                g_strfreev (parts);
                return FALSE;
        }