agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java

Print this page
rev 3688 : 7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by:

*** 51,63 **** } private static void initialize(TypeDataBase db) { Type type = db.lookupType("oopDesc"); ! if (VM.getVM().isCompressedHeadersEnabled()) { ! // klassField = type.getNarrowOopField("_metadata._compressed_klass"); ! throw new InternalError("unimplemented"); } else { klassField = type.getAddressField("_metadata._klass"); } } --- 51,62 ---- } private static void initialize(TypeDataBase db) { Type type = db.lookupType("oopDesc"); ! if (VM.getVM().isCompressedKlassPointersEnabled()) { ! klassField = type.getAddressField("_metadata._compressed_klass"); } else { klassField = type.getAddressField("_metadata._klass"); } }
*** 68,78 **** --- 67,81 ---- if (!VM.getVM().getUniverse().isIn(oop)) { return false; } try { // Try to instantiate the Klass + if (VM.getVM().isCompressedKlassPointersEnabled()) { + Metadata.instantiateWrapperFor(oop.getCompKlassAddressAt(klassField.getOffset())); + } else { Metadata.instantiateWrapperFor(klassField.getValue(oop)); + } return true; } catch (AddressException e) { return false; }