Skip to content

Commit b6e2d66

Browse files
committed
8351087: Combine scratch object tables in heapShared.cpp
Reviewed-by: ccheung
1 parent d9b98f7 commit b6e2d66

File tree

3 files changed

+13
-16
lines changed

3 files changed

+13
-16
lines changed

src/hotspot/share/cds/heapShared.cpp

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,7 @@ GrowableArrayCHeap<oop, mtClassShared>* HeapShared::_pending_roots = nullptr;
141141
GrowableArrayCHeap<OopHandle, mtClassShared>* HeapShared::_root_segments;
142142
int HeapShared::_root_segment_max_size_elems;
143143
OopHandle HeapShared::_scratch_basic_type_mirrors[T_VOID+1];
144-
MetaspaceObjToOopHandleTable* HeapShared::_scratch_java_mirror_table = nullptr;
145-
MetaspaceObjToOopHandleTable* HeapShared::_scratch_references_table = nullptr;
144+
MetaspaceObjToOopHandleTable* HeapShared::_scratch_objects_table = nullptr;
146145

147146
static bool is_subgraph_root_class_of(ArchivableStaticFieldInfo fields[], InstanceKlass* ik) {
148147
for (int i = 0; fields[i].valid(); i++) {
@@ -393,20 +392,19 @@ class MetaspaceObjToOopHandleTable: public ResourceHashtable<MetaspaceObj*, OopH
393392

394393
void HeapShared::add_scratch_resolved_references(ConstantPool* src, objArrayOop dest) {
395394
if (SystemDictionaryShared::is_builtin_loader(src->pool_holder()->class_loader_data())) {
396-
_scratch_references_table->set_oop(src, dest);
395+
_scratch_objects_table->set_oop(src, dest);
397396
}
398397
}
399398

400399
objArrayOop HeapShared::scratch_resolved_references(ConstantPool* src) {
401-
return (objArrayOop)_scratch_references_table->get_oop(src);
400+
return (objArrayOop)_scratch_objects_table->get_oop(src);
402401
}
403402

404403
void HeapShared::init_dumping() {
405-
_scratch_java_mirror_table = new (mtClass)MetaspaceObjToOopHandleTable();
406-
_scratch_references_table = new (mtClass)MetaspaceObjToOopHandleTable();
404+
_scratch_objects_table = new (mtClass)MetaspaceObjToOopHandleTable();
407405
}
408406

409-
void HeapShared::init_scratch_objects(TRAPS) {
407+
void HeapShared::init_scratch_objects_for_basic_type_mirrors(TRAPS) {
410408
for (int i = T_BOOLEAN; i < T_VOID+1; i++) {
411409
BasicType bt = (BasicType)i;
412410
if (!is_reference_type(bt)) {
@@ -448,24 +446,24 @@ oop HeapShared::scratch_java_mirror(BasicType t) {
448446
}
449447

450448
oop HeapShared::scratch_java_mirror(Klass* k) {
451-
return _scratch_java_mirror_table->get_oop(k);
449+
return _scratch_objects_table->get_oop(k);
452450
}
453451

454452
void HeapShared::set_scratch_java_mirror(Klass* k, oop mirror) {
455-
_scratch_java_mirror_table->set_oop(k, mirror);
453+
_scratch_objects_table->set_oop(k, mirror);
456454
}
457455

458456
void HeapShared::remove_scratch_objects(Klass* k) {
459457
// Klass is being deallocated. Java mirror can still be alive, and it should not
460458
// point to dead klass. We need to break the link from mirror to the Klass.
461459
// See how InstanceKlass::deallocate_contents does it for normal mirrors.
462-
oop mirror = _scratch_java_mirror_table->get_oop(k);
460+
oop mirror = _scratch_objects_table->get_oop(k);
463461
if (mirror != nullptr) {
464462
java_lang_Class::set_klass(mirror, nullptr);
465463
}
466-
_scratch_java_mirror_table->remove_oop(k);
464+
_scratch_objects_table->remove_oop(k);
467465
if (k->is_instance_klass()) {
468-
_scratch_references_table->remove(InstanceKlass::cast(k)->constants());
466+
_scratch_objects_table->remove(InstanceKlass::cast(k)->constants());
469467
}
470468
}
471469

src/hotspot/share/cds/heapShared.hpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,7 @@ class HeapShared: AllStatic {
284284
static GrowableArrayCHeap<OopHandle, mtClassShared>* _root_segments;
285285
static int _root_segment_max_size_elems;
286286
static OopHandle _scratch_basic_type_mirrors[T_VOID+1];
287-
static MetaspaceObjToOopHandleTable* _scratch_java_mirror_table;
288-
static MetaspaceObjToOopHandleTable* _scratch_references_table;
287+
static MetaspaceObjToOopHandleTable* _scratch_objects_table;
289288

290289
static void init_seen_objects_table() {
291290
assert(_seen_objects_table == nullptr, "must be");
@@ -406,7 +405,7 @@ class HeapShared: AllStatic {
406405
static objArrayOop scratch_resolved_references(ConstantPool* src);
407406
static void add_scratch_resolved_references(ConstantPool* src, objArrayOop dest) NOT_CDS_JAVA_HEAP_RETURN;
408407
static void init_dumping() NOT_CDS_JAVA_HEAP_RETURN;
409-
static void init_scratch_objects(TRAPS) NOT_CDS_JAVA_HEAP_RETURN;
408+
static void init_scratch_objects_for_basic_type_mirrors(TRAPS) NOT_CDS_JAVA_HEAP_RETURN;
410409
static void init_box_classes(TRAPS) NOT_CDS_JAVA_HEAP_RETURN;
411410
static bool is_heap_region(int idx) {
412411
CDS_JAVA_HEAP_ONLY(return (idx == MetaspaceShared::hp);)

src/hotspot/share/memory/universe.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ void Universe::initialize_basic_type_mirrors(TRAPS) {
572572
}
573573
}
574574
if (CDSConfig::is_dumping_heap()) {
575-
HeapShared::init_scratch_objects(CHECK);
575+
HeapShared::init_scratch_objects_for_basic_type_mirrors(CHECK);
576576
}
577577
}
578578

0 commit comments

Comments
 (0)