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;
}