< 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 >