[sgen] Dynamic nursery sizing
[mono.git] / mono / sgen / sgen-simple-nursery.c
index 4234559e9e8cec8ced5617f60fe64e9e9e862c38..ee72408b76f273ace13978c6ea126cc1af7fe032 100644 (file)
@@ -57,7 +57,14 @@ clear_fragments (void)
 static void
 init_nursery (SgenFragmentAllocator *allocator, char *start, char *end)
 {
-       sgen_fragment_allocator_add (allocator, start, end);
+       char *nursery_limit = sgen_nursery_start + sgen_nursery_size;
+
+       if (start < nursery_limit && end > nursery_limit) {
+               sgen_fragment_allocator_add (allocator, start, nursery_limit);
+               sgen_fragment_allocator_add (allocator, nursery_limit, end);
+       } else {
+               sgen_fragment_allocator_add (allocator, start, end);
+       }
 }