src/hotspot/share/oops/cpCache.cpp
changeset 50532 a18c60527166
parent 50429 83aec1d357d4
child 50735 2f2af62dfac7
equal deleted inserted replaced
50531:aeb7fb702890 50532:a18c60527166
    30 #include "interpreter/linkResolver.hpp"
    30 #include "interpreter/linkResolver.hpp"
    31 #include "interpreter/rewriter.hpp"
    31 #include "interpreter/rewriter.hpp"
    32 #include "logging/log.hpp"
    32 #include "logging/log.hpp"
    33 #include "memory/metadataFactory.hpp"
    33 #include "memory/metadataFactory.hpp"
    34 #include "memory/metaspaceClosure.hpp"
    34 #include "memory/metaspaceClosure.hpp"
       
    35 #include "memory/metaspaceShared.hpp"
    35 #include "memory/resourceArea.hpp"
    36 #include "memory/resourceArea.hpp"
    36 #include "memory/universe.hpp"
    37 #include "memory/universe.hpp"
    37 #include "oops/access.inline.hpp"
    38 #include "oops/access.inline.hpp"
    38 #include "oops/constantPool.inline.hpp"
    39 #include "oops/constantPool.inline.hpp"
    39 #include "oops/cpCache.inline.hpp"
    40 #include "oops/cpCache.inline.hpp"
   741   set_reference_map(NULL);
   742   set_reference_map(NULL);
   742 }
   743 }
   743 
   744 
   744 #if INCLUDE_CDS_JAVA_HEAP
   745 #if INCLUDE_CDS_JAVA_HEAP
   745 oop ConstantPoolCache::archived_references() {
   746 oop ConstantPoolCache::archived_references() {
   746   // Loading an archive root forces the oop to become strongly reachable.
   747   if (CompressedOops::is_null(_archived_references)) {
   747   // For example, if it is loaded during concurrent marking in a SATB
   748     return NULL;
   748   // collector, it will be enqueued to the SATB queue, effectively
   749   }
   749   // shading the previously white object gray.
   750   return MetaspaceShared::materialize_archived_object(CompressedOops::decode_not_null(_archived_references));
   750   return RootAccess<IN_ARCHIVE_ROOT>::oop_load(&_archived_references);
       
   751 }
   751 }
   752 
   752 
   753 void ConstantPoolCache::set_archived_references(oop o) {
   753 void ConstantPoolCache::set_archived_references(oop o) {
   754   assert(DumpSharedSpaces, "called only during runtime");
   754   assert(DumpSharedSpaces, "called only during runtime");
   755   RootAccess<IN_ARCHIVE_ROOT>::oop_store(&_archived_references, o);
   755   _archived_references = CompressedOops::encode(o);
   756 }
   756 }
   757 #endif
   757 #endif
   758 
   758 
   759 #if INCLUDE_JVMTI
   759 #if INCLUDE_JVMTI
   760 // RedefineClasses() API support:
   760 // RedefineClasses() API support: