-/*
- * sgen-alloc.c: Object allocation routines + managed allocators
+/**
+ * \file
+ * Object allocation routines + managed allocators
*
* Author:
* Paolo Molaro (lupus@ximian.com)
* tlab_real_end points to the end of the TLAB.
*/
-#ifdef HAVE_KW_THREAD
-#define TLAB_START (sgen_thread_info->tlab_start)
-#define TLAB_NEXT (sgen_thread_info->tlab_next)
-#define TLAB_TEMP_END (sgen_thread_info->tlab_temp_end)
-#define TLAB_REAL_END (sgen_thread_info->tlab_real_end)
-#else
#define TLAB_START (__thread_info__->tlab_start)
#define TLAB_NEXT (__thread_info__->tlab_next)
#define TLAB_TEMP_END (__thread_info__->tlab_temp_end)
#define TLAB_REAL_END (__thread_info__->tlab_real_end)
-#endif
static GCObject*
alloc_degraded (GCVTable vtable, size_t size, gboolean for_mature)
/* when running in degraded mode, we continue allocing that way
* for a while, to decrease the number of useless nursery collections.
*/
- if (degraded_mode && degraded_mode < DEFAULT_NURSERY_SIZE)
+ if (degraded_mode && degraded_mode < sgen_nursery_size)
return alloc_degraded (vtable, size, FALSE);
available_in_tlab = (int)(TLAB_REAL_END - TLAB_NEXT);//We'll never have tlabs > 2Gb
p = (void **)sgen_nursery_alloc (size);
}
if (!p)
- return alloc_degraded (vtable, size, FALSE);
+ return alloc_degraded (vtable, size, TRUE);
zero_tlab_if_necessary (p, size);
} else {
p = (void **)sgen_nursery_alloc_range (tlab_size, size, &alloc_size);
}
if (!p)
- return alloc_degraded (vtable, size, FALSE);
+ return alloc_degraded (vtable, size, TRUE);
/* Allocate a new TLAB from the current nursery fragment */
TLAB_START = (char*)p;