X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsgen-nursery-allocator.c;h=7abd0387fcfe08df948ec352d85ba6c5eab738c7;hb=5ad1099341581dee94f77b32db728918e90fa64f;hp=0d90a79806325c36d6c64f52df3b8063df4d7cd5;hpb=8a4e1ca74e654095b342619d06dcc9b73e402946;p=mono.git diff --git a/mono/metadata/sgen-nursery-allocator.c b/mono/metadata/sgen-nursery-allocator.c index 0d90a798063..7abd0387fcf 100644 --- a/mono/metadata/sgen-nursery-allocator.c +++ b/mono/metadata/sgen-nursery-allocator.c @@ -853,6 +853,10 @@ gboolean sgen_can_alloc_size (size_t size) { SgenFragment *frag; + + if (!SGEN_CAN_ALIGN_UP (size)) + return FALSE; + size = SGEN_ALIGN_UP (size); for (frag = unmask (mutator_allocator.alloc_head); frag; frag = unmask (frag->next)) { @@ -865,6 +869,8 @@ sgen_can_alloc_size (size_t size) void* sgen_nursery_alloc (size_t size) { + SGEN_ASSERT (1, size >= sizeof (MonoObject) && size <= SGEN_MAX_SMALL_OBJ_SIZE, "Invalid nursery object size"); + SGEN_LOG (4, "Searching nursery for size: %zd", size); size = SGEN_ALIGN_UP (size);