equal
deleted
inserted
replaced
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: |