Mercurial > hg > graal-jvmci-8
diff agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java @ 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 | a61af66fc99e |
children | d1605aabd0a1 a5838065ab24 |
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java Fri Apr 11 09:56:35 2008 -0400 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java Sun Apr 13 17:43:42 2008 -0400 @@ -41,6 +41,12 @@ public class ObjectHeap { + private static final boolean DEBUG; + + static { + DEBUG = System.getProperty("sun.jvm.hotspot.oops.ObjectHeap.DEBUG") != null; + } + private OopHandle symbolKlassHandle; private OopHandle methodKlassHandle; private OopHandle constMethodKlassHandle; @@ -152,7 +158,7 @@ public ObjectHeap(TypeDataBase db) throws WrongTypeException { // Get commonly used sizes of basic types - oopSize = db.getOopSize(); + oopSize = VM.getVM().getOopSize(); byteSize = db.getJByteType().getSize(); charSize = db.getJCharType().getSize(); booleanSize = db.getJBooleanType().getSize(); @@ -440,12 +446,16 @@ try { // Traverses the space from bottom to top OopHandle handle = bottom.addOffsetToAsOopHandle(0); + while (handle.lessThan(top)) { Oop obj = null; try { obj = newOop(handle); } catch (UnknownOopException exp) { + if (DEBUG) { + throw new RuntimeException(" UnknownOopException " + exp); + } } if (obj == null) { //Find the object size using Printezis bits and skip over