Fix typo.
[mono.git] / mono / metadata / reflection.c
index 569775f8435e14d0f4f31e4d25d2759de5f3c685..0fe23865ee7b9d581f1f6a0889bc8316dea5989a 100644 (file)
@@ -4277,6 +4277,7 @@ mono_image_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
 #endif
 
        assembly->assembly.dynamic = TRUE;
+       assembly->assembly.corlib_internal = assemblyb->corlib_internal;
        assemblyb->assembly.assembly = (MonoAssembly*)assembly;
        assembly->assembly.basedir = mono_string_to_utf8 (assemblyb->dir);
        if (assemblyb->culture)
@@ -5073,10 +5074,6 @@ mono_assembly_get_object (MonoDomain *domain, MonoAssembly *assembly)
        res = (MonoReflectionAssembly *)mono_object_new (domain, System_Reflection_Assembly);
        res->assembly = assembly;
 
-       /* FIXME: This is a workaround for 1.1.3 */
-       if (!strcmp (assembly->aname.name, "__MetadataTypes"))
-               res->corlib_internal = TRUE;
-
        CACHE_OBJECT (assembly, res, NULL);
        return res;
 }
@@ -7044,11 +7041,19 @@ handle_type:
                break;
        }
        /* it may be a boxed value or a Type */
-       case MONO_TYPE_OBJECT: {
-               MonoClass *klass = mono_object_class (arg);
+       case MONO_TYPE_OBJECT: {\r
+               MonoClass *klass;
                char *str;
                guint32 slen;
+\r
+               if (arg == NULL) {\r
+                       *p++ = MONO_TYPE_STRING;        // It's same hack as MS uses\r
+                       *p++ = 0xFF;\r
+                       break;\r
+               }\r
                
+               klass = mono_object_class (arg);
+
                if (mono_object_isinst (arg, mono_defaults.monotype_class)) {
                        *p++ = 0x50;
                        goto handle_type;