Merge pull request #4248 from Unity-Technologies/boehm-gc-alloc-fixed
[mono.git] / mono / metadata / domain.c
index a498f9491f8412f9fa10bc0bf700d9c3826b0b14..810d41197919ce7d0700169d2d080fced5c6db26 100644 (file)
@@ -382,13 +382,7 @@ mono_domain_create (void)
        mono_appdomains_unlock ();
 
 #ifdef HAVE_BOEHM_GC
-       /*
-        * Boehm doesn't like roots inside GC allocated objects, and alloc_fixed returns
-        * a GC_MALLOC-ed object, contrary to the api docs. This causes random crashes when
-        * running the corlib test suite.
-        * To solve this, we pass a NULL descriptor, and don't register roots.
-        */
-       domain = (MonoDomain *)mono_gc_alloc_fixed (sizeof (MonoDomain), NULL, MONO_ROOT_SOURCE_DOMAIN, "domain object");
+       domain = (MonoDomain *)mono_gc_alloc_fixed (sizeof (MonoDomain), MONO_GC_DESCRIPTOR_NULL, MONO_ROOT_SOURCE_DOMAIN, "domain object");
 #else
        domain = (MonoDomain *)mono_gc_alloc_fixed (sizeof (MonoDomain), domain_gc_desc, MONO_ROOT_SOURCE_DOMAIN, "domain object");
        mono_gc_register_root ((char*)&(domain->MONO_DOMAIN_FIRST_GC_TRACKED), G_STRUCT_OFFSET (MonoDomain, MONO_DOMAIN_LAST_GC_TRACKED) - G_STRUCT_OFFSET (MonoDomain, MONO_DOMAIN_FIRST_GC_TRACKED), MONO_GC_DESCRIPTOR_NULL, MONO_ROOT_SOURCE_DOMAIN, "misc domain fields");
@@ -513,9 +507,6 @@ mono_init_internal (const char *filename, const char *exe_filename, const char *
        mono_reflection_init ();
        mono_runtime_init_tls ();
 
-       /* FIXME: When should we release this memory? */
-       MONO_GC_REGISTER_ROOT_FIXED (appdomains_list, MONO_ROOT_SOURCE_DOMAIN, "domains list");
-
        domain = mono_domain_create ();
        mono_root_domain = domain;