< prev index next >

src/hotspot/share/gc/z/zNMethodData.cpp


*** 21,31 **** * questions. */ #include "precompiled.hpp" #include "gc/z/zLock.inline.hpp" - #include "gc/z/zNMethodAllocator.hpp" #include "gc/z/zNMethodData.hpp" #include "memory/allocation.hpp" #include "runtime/atomic.hpp" #include "runtime/orderAccess.hpp" #include "utilities/align.hpp" --- 21,30 ---- ***************
*** 40,55 **** ZNMethodDataOops* ZNMethodDataOops::create(const GrowableArray<oop*>& immediates, bool has_non_immediates) { // Allocate memory for the ZNMethodDataOops object // plus the immediate oop* array that follows right after. const size_t size = ZNMethodDataOops::header_size() + (sizeof(oop*) * immediates.length()); ! void* const mem = ZNMethodAllocator::allocate(size); return ::new (mem) ZNMethodDataOops(immediates, has_non_immediates); } void ZNMethodDataOops::destroy(ZNMethodDataOops* oops) { ! ZNMethodAllocator::free(oops); } ZNMethodDataOops::ZNMethodDataOops(const GrowableArray<oop*>& immediates, bool has_non_immediates) : _nimmediates(immediates.length()), _has_non_immediates(has_non_immediates) { --- 39,54 ---- ZNMethodDataOops* ZNMethodDataOops::create(const GrowableArray<oop*>& immediates, bool has_non_immediates) { // Allocate memory for the ZNMethodDataOops object // plus the immediate oop* array that follows right after. const size_t size = ZNMethodDataOops::header_size() + (sizeof(oop*) * immediates.length()); ! void* const mem = NEW_C_HEAP_ARRAY(uint8_t, size, mtGC); return ::new (mem) ZNMethodDataOops(immediates, has_non_immediates); } void ZNMethodDataOops::destroy(ZNMethodDataOops* oops) { ! FREE_C_HEAP_ARRAY(uint8_t, oops); } ZNMethodDataOops::ZNMethodDataOops(const GrowableArray<oop*>& immediates, bool has_non_immediates) : _nimmediates(immediates.length()), _has_non_immediates(has_non_immediates) { ***************
*** 79,89 **** ZNMethodData::ZNMethodData() : _lock(), _oops(NULL) {} ZNMethodData::~ZNMethodData() { ! ZNMethodAllocator::free(_oops); } ZReentrantLock* ZNMethodData::lock() { return &_lock; } --- 78,88 ---- ZNMethodData::ZNMethodData() : _lock(), _oops(NULL) {} ZNMethodData::~ZNMethodData() { ! ZNMethodDataOops::destroy(_oops); } ZReentrantLock* ZNMethodData::lock() { return &_lock; } ***************
*** 91,97 **** ZNMethodDataOops* ZNMethodData::oops() const { return OrderAccess::load_acquire(&_oops); } ZNMethodDataOops* ZNMethodData::swap_oops(ZNMethodDataOops* new_oops) { ! return Atomic::xchg(new_oops, &_oops); } --- 90,99 ---- ZNMethodDataOops* ZNMethodData::oops() const { return OrderAccess::load_acquire(&_oops); } ZNMethodDataOops* ZNMethodData::swap_oops(ZNMethodDataOops* new_oops) { ! ZLocker<ZReentrantLock> locker(&_lock); ! ZNMethodDataOops* const old_oops = _oops; ! _oops = new_oops; ! return old_oops; }
< prev index next >