Skip to content

Commit 4732abf

Browse files
committed
8292910: Remove root to oop cast in HeapDumper
Reviewed-by: eosterlund, coleenp
1 parent f694f8a commit 4732abf

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/hotspot/share/services/heapDumper.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,9 @@ class AbstractDumpWriter : public StackObj {
410410

411411
// Returns true if we have enough room in the buffer for 'len' bytes.
412412
bool can_write_fast(size_t len);
413+
414+
void write_address(address a);
415+
413416
public:
414417
AbstractDumpWriter() :
415418
_buffer(NULL),
@@ -429,6 +432,7 @@ class AbstractDumpWriter : public StackObj {
429432
void write_u4(u4 x);
430433
void write_u8(u8 x);
431434
void write_objectID(oop o);
435+
void write_rootID(oop* p);
432436
void write_symbolID(Symbol* o);
433437
void write_classID(Klass* k);
434438
void write_id(u4 x);
@@ -511,22 +515,24 @@ void AbstractDumpWriter::write_u8(u8 x) {
511515
WRITE_KNOWN_TYPE(&v, 8);
512516
}
513517

514-
void AbstractDumpWriter::write_objectID(oop o) {
515-
address a = cast_from_oop<address>(o);
518+
void AbstractDumpWriter::write_address(address a) {
516519
#ifdef _LP64
517520
write_u8((u8)a);
518521
#else
519522
write_u4((u4)a);
520523
#endif
521524
}
522525

526+
void AbstractDumpWriter::write_objectID(oop o) {
527+
write_address(cast_from_oop<address>(o));
528+
}
529+
530+
void AbstractDumpWriter::write_rootID(oop* p) {
531+
write_address((address)p);
532+
}
533+
523534
void AbstractDumpWriter::write_symbolID(Symbol* s) {
524-
address a = (address)((uintptr_t)s);
525-
#ifdef _LP64
526-
write_u8((u8)a);
527-
#else
528-
write_u4((u4)a);
529-
#endif
535+
write_address((address)((uintptr_t)s));
530536
}
531537

532538
void AbstractDumpWriter::write_id(u4 x) {
@@ -1581,7 +1587,7 @@ void JNIGlobalsDumper::do_oop(oop* obj_p) {
15811587
u4 size = 1 + 2 * sizeof(address);
15821588
writer()->start_sub_record(HPROF_GC_ROOT_JNI_GLOBAL, size);
15831589
writer()->write_objectID(o);
1584-
writer()->write_objectID((oopDesc*)obj_p); // global ref ID
1590+
writer()->write_rootID(obj_p); // global ref ID
15851591
writer()->end_sub_record();
15861592
}
15871593
};

0 commit comments

Comments
 (0)