Mercurial > hg > truffle
diff src/share/vm/services/heapDumper.cpp @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | d5fc211aea19 |
children | d1605aabd0a1 37f87013dfd8 |
line wrap: on
line diff
--- a/src/share/vm/services/heapDumper.cpp Fri Apr 11 09:56:35 2008 -0400 +++ b/src/share/vm/services/heapDumper.cpp Sun Apr 13 17:43:42 2008 -0400 @@ -670,8 +670,12 @@ switch (type) { case JVM_SIGNATURE_CLASS : case JVM_SIGNATURE_ARRAY : { - oop* f = (oop*)addr; - oop o = *f; + oop o; + if (UseCompressedOops) { + o = oopDesc::load_decode_heap_oop((narrowOop*)addr); + } else { + o = oopDesc::load_decode_heap_oop((oop*)addr); + } // reflection and sun.misc.Unsafe classes may have a reference to a // klassOop so filter it out. @@ -1077,6 +1081,7 @@ public: SymbolTableDumper(DumpWriter* writer) { _writer = writer; } void do_oop(oop* obj_p); + void do_oop(narrowOop* obj_p) { ShouldNotReachHere(); } }; void SymbolTableDumper::do_oop(oop* obj_p) { @@ -1106,6 +1111,7 @@ _thread_serial_num = thread_serial_num; } void do_oop(oop* obj_p); + void do_oop(narrowOop* obj_p) { ShouldNotReachHere(); } }; @@ -1133,6 +1139,7 @@ _writer = writer; } void do_oop(oop* obj_p); + void do_oop(narrowOop* obj_p) { ShouldNotReachHere(); } }; void JNIGlobalsDumper::do_oop(oop* obj_p) { @@ -1164,6 +1171,7 @@ writer()->write_u1(HPROF_GC_ROOT_MONITOR_USED); writer()->write_objectID(*obj_p); } + void do_oop(narrowOop* obj_p) { ShouldNotReachHere(); } }; @@ -1178,6 +1186,7 @@ _writer = writer; } void do_oop(oop* obj_p); + void do_oop(narrowOop* obj_p) { ShouldNotReachHere(); } }; void StickyClassDumper::do_oop(oop* obj_p) {