< prev index next >

src/hotspot/share/gc/shared/collectedHeap.inline.hpp

erik allocation

*** 135,156 **** if (HAS_PENDING_EXCEPTION) { NOT_PRODUCT(guarantee(false, "Should not allocate with exception pending")); return NULL; // caller does a CHECK_0 too } - HeapWord* result = NULL; - if (UseTLAB) { - result = allocate_from_tlab(klass, THREAD, size); - if (result != NULL) { - assert(!HAS_PENDING_EXCEPTION, - "Unexpected exception, will result in uninitialized storage"); - return result; - } - } bool gc_overhead_limit_was_exceeded = false; ! result = Universe::heap()->mem_allocate(size, ! &gc_overhead_limit_was_exceeded); if (result != NULL) { NOT_PRODUCT(Universe::heap()-> check_for_non_bad_heap_word_value(result, size)); assert(!HAS_PENDING_EXCEPTION, "Unexpected exception, will result in uninitialized storage"); --- 135,148 ---- if (HAS_PENDING_EXCEPTION) { NOT_PRODUCT(guarantee(false, "Should not allocate with exception pending")); return NULL; // caller does a CHECK_0 too } bool gc_overhead_limit_was_exceeded = false; ! CollectedHeap* heap = Universe::heap(); ! HeapWord* result = heap->obj_allocate_raw(klass, size, &gc_overhead_limit_was_exceeded, THREAD); ! if (result != NULL) { NOT_PRODUCT(Universe::heap()-> check_for_non_bad_heap_word_value(result, size)); assert(!HAS_PENDING_EXCEPTION, "Unexpected exception, will result in uninitialized storage"); ***************
*** 159,169 **** AllocTracer::send_allocation_outside_tlab(klass, result, size * HeapWordSize, THREAD); return result; } - if (!gc_overhead_limit_was_exceeded) { // -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError support report_java_out_of_memory("Java heap space"); if (JvmtiExport::should_post_resource_exhausted()) { --- 151,160 ---- ***************
*** 191,209 **** HeapWord* obj = common_mem_allocate_noinit(klass, size, CHECK_NULL); init_obj(obj, size); return obj; } ! HeapWord* CollectedHeap::allocate_from_tlab(Klass* klass, Thread* thread, size_t size) { assert(UseTLAB, "should use UseTLAB"); ! HeapWord* obj = thread->tlab().allocate(size); if (obj != NULL) { return obj; } // Otherwise... ! return allocate_from_tlab_slow(klass, thread, size); } void CollectedHeap::init_obj(HeapWord* obj, size_t size) { assert(obj != NULL, "cannot initialize NULL object"); const size_t hs = oopDesc::header_size(); --- 182,203 ---- HeapWord* obj = common_mem_allocate_noinit(klass, size, CHECK_NULL); init_obj(obj, size); return obj; } ! HeapWord* CollectedHeap::allocate_from_tlab(Klass* klass, size_t size, TRAPS) { assert(UseTLAB, "should use UseTLAB"); ! HeapWord* obj = THREAD->tlab().allocate(size); if (obj != NULL) { return obj; } // Otherwise... ! obj = allocate_from_tlab_slow(klass, size, THREAD); ! assert(obj == NULL || !HAS_PENDING_EXCEPTION, ! "Unexpected exception, will result in uninitialized storage"); ! return obj; } void CollectedHeap::init_obj(HeapWord* obj, size_t size) { assert(obj != NULL, "cannot initialize NULL object"); const size_t hs = oopDesc::header_size();
< prev index next >