< prev index next >

src/hotspot/share/oops/valueKlass.cpp

Print this page

        

*** 103,128 **** instanceOop oop = (instanceOop)Universe::heap()->obj_allocate(this, size, CHECK_NULL); assert(oop->mark()->is_always_locked(), "Unlocked value type"); return oop; } - instanceOop ValueKlass::allocate_buffered_or_heap_instance(bool* in_heap, TRAPS) { - assert(THREAD->is_Java_thread(), "Only Java threads can call this method"); - - instanceOop value = NULL; - if (is_bufferable()) { - value = (instanceOop)VTBuffer::allocate_value(this, CHECK_NULL); - *in_heap = false; - } - if (value == NULL) { - log_info(valuetypes)("Value buffering failed, allocating in the Java heap"); - value = allocate_instance(CHECK_NULL); - *in_heap = true; - } - return value; - } - bool ValueKlass::is_atomic() { return (nonstatic_field_size() * heapOopSize) <= longSize; } int ValueKlass::nonstatic_oop_count() { --- 103,112 ----
*** 469,487 **** assert(j == regs->length(), "missed a field?"); } // Fields are in registers. Create an instance of the value type and // initialize it with the values of the fields. ! oop ValueKlass::realloc_result(const RegisterMap& reg_map, const GrowableArray<Handle>& handles, bool buffered, TRAPS) { ! bool ignored = false; ! oop new_vt = NULL; ! if (buffered) { ! new_vt = allocate_buffered_or_heap_instance(&ignored, CHECK_NULL); ! } else { ! new_vt = allocate_instance(CHECK_NULL); ! } const Array<SigEntry>* sig_vk = extended_sig(); const Array<VMRegPair>* regs = return_regs(); int j = 1; int k = 0; --- 453,465 ---- assert(j == regs->length(), "missed a field?"); } // Fields are in registers. Create an instance of the value type and // initialize it with the values of the fields. ! oop ValueKlass::realloc_result(const RegisterMap& reg_map, const GrowableArray<Handle>& handles, TRAPS) { + oop new_vt = allocate_instance(CHECK_NULL); const Array<SigEntry>* sig_vk = extended_sig(); const Array<VMRegPair>* regs = return_regs(); int j = 1; int k = 0;
< prev index next >