< prev index next >

src/hotspot/share/oops/cpCache.cpp

Print this page
rev 48471 : [mq]: RFE_Access_constantPoolCache_new_decorator

*** 31,40 **** --- 31,41 ---- #include "logging/log.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.inline.hpp" + #include "oops/access.inline.hpp" #include "oops/cpCache.hpp" #include "oops/objArrayOop.inline.hpp" #include "oops/oop.inline.hpp" #include "prims/methodHandles.hpp" #include "runtime/atomic.hpp"
*** 751,767 **** set_reference_map(NULL); } #if INCLUDE_CDS_JAVA_HEAP oop ConstantPoolCache::archived_references() { ! assert(UseSharedSpaces, "UseSharedSpaces expected."); ! return oopDesc::decode_heap_oop(_archived_references); } void ConstantPoolCache::set_archived_references(oop o) { assert(DumpSharedSpaces, "called only during runtime"); ! _archived_references = oopDesc::encode_heap_oop(o); } #endif #if INCLUDE_JVMTI // RedefineClasses() API support: --- 752,771 ---- set_reference_map(NULL); } #if INCLUDE_CDS_JAVA_HEAP oop ConstantPoolCache::archived_references() { ! // Loading an archive root forces the oop to become strongly reachable. ! // For example, if it is loaded during concurrent marking in a SATB ! // collector, it will be enqueued to the SATB queue, effectively ! // shading the previously white object gray. ! return RootAccess<IN_ARCHIVE_ROOT>::oop_load(&_archived_references); } void ConstantPoolCache::set_archived_references(oop o) { assert(DumpSharedSpaces, "called only during runtime"); ! RootAccess<IN_ARCHIVE_ROOT>::oop_store(&_archived_references, o); } #endif #if INCLUDE_JVMTI // RedefineClasses() API support:
< prev index next >