93 #if INCLUDE_CDS_JAVA_HEAP
94 private:
95 static bool obj_equals(oop const& p1, oop const& p2) {
96 return p1 == p2;
97 }
98 static unsigned obj_hash(oop const& p) {
99 unsigned hash = (unsigned)((uintptr_t)&p);
100 return hash ^ (hash >> LogMinObjAlignment);
101 }
102 typedef ResourceHashtable<oop, oop,
103 MetaspaceShared::obj_hash, MetaspaceShared::obj_equals> ArchivedObjectCache;
104 static ArchivedObjectCache* _archive_object_cache;
105
106 public:
107 static ArchivedObjectCache* archive_object_cache() {
108 return _archive_object_cache;
109 }
110 static oop archive_heap_object(oop obj, Thread* THREAD);
111 static void archive_resolved_constants(Thread* THREAD);
112 #endif
113 static bool allow_archive_heap_object() {
114 CDS_JAVA_HEAP_ONLY(return (UseG1GC && UseCompressedOops && UseCompressedClassPointers);)
115 NOT_CDS_JAVA_HEAP(return false;)
116 }
117 static void create_archive_object_cache() {
118 CDS_JAVA_HEAP_ONLY(_archive_object_cache = new ArchivedObjectCache(););
119 }
120 static void fixup_mapped_heap_regions() NOT_CDS_JAVA_HEAP_RETURN;
121
122 static void dump_open_archive_heap_objects(GrowableArray<MemRegion> * open_archive) NOT_CDS_JAVA_HEAP_RETURN;
123 static void set_open_archive_heap_region_mapped() {
124 CDS_JAVA_HEAP_ONLY(_open_archive_heap_region_mapped = true);
125 NOT_CDS_JAVA_HEAP_RETURN;
126 }
127 static bool open_archive_heap_region_mapped() {
128 CDS_JAVA_HEAP_ONLY(return _open_archive_heap_region_mapped);
129 NOT_CDS_JAVA_HEAP_RETURN_(false);
130 }
131
132 static ReservedSpace* shared_rs() {
133 CDS_ONLY(return &_shared_rs);
|
93 #if INCLUDE_CDS_JAVA_HEAP
94 private:
95 static bool obj_equals(oop const& p1, oop const& p2) {
96 return p1 == p2;
97 }
98 static unsigned obj_hash(oop const& p) {
99 unsigned hash = (unsigned)((uintptr_t)&p);
100 return hash ^ (hash >> LogMinObjAlignment);
101 }
102 typedef ResourceHashtable<oop, oop,
103 MetaspaceShared::obj_hash, MetaspaceShared::obj_equals> ArchivedObjectCache;
104 static ArchivedObjectCache* _archive_object_cache;
105
106 public:
107 static ArchivedObjectCache* archive_object_cache() {
108 return _archive_object_cache;
109 }
110 static oop archive_heap_object(oop obj, Thread* THREAD);
111 static void archive_resolved_constants(Thread* THREAD);
112 #endif
113 static bool is_heap_object_archiving_allowed() {
114 CDS_JAVA_HEAP_ONLY(return (UseG1GC && UseCompressedOops && UseCompressedClassPointers);)
115 NOT_CDS_JAVA_HEAP(return false;)
116 }
117 static void create_archive_object_cache() {
118 CDS_JAVA_HEAP_ONLY(_archive_object_cache = new ArchivedObjectCache(););
119 }
120 static void fixup_mapped_heap_regions() NOT_CDS_JAVA_HEAP_RETURN;
121
122 static void dump_open_archive_heap_objects(GrowableArray<MemRegion> * open_archive) NOT_CDS_JAVA_HEAP_RETURN;
123 static void set_open_archive_heap_region_mapped() {
124 CDS_JAVA_HEAP_ONLY(_open_archive_heap_region_mapped = true);
125 NOT_CDS_JAVA_HEAP_RETURN;
126 }
127 static bool open_archive_heap_region_mapped() {
128 CDS_JAVA_HEAP_ONLY(return _open_archive_heap_region_mapped);
129 NOT_CDS_JAVA_HEAP_RETURN_(false);
130 }
131
132 static ReservedSpace* shared_rs() {
133 CDS_ONLY(return &_shared_rs);
|