# HG changeset patch # User kvn # Date 1212613428 25200 # Node ID b9ebd46331d27cd3b941c12b5fa9c1792008bba1 # Parent 510f98a80563a2a7490f35d8dec163f00f419423 6710654: SAJDI failures with Compressed Oops Summary: Use correct offset for the java.lang.Class _klass field in SA. Reviewed-by: jrose, never diff -r 510f98a80563 -r b9ebd46331d2 agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java --- a/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java Tue Jun 03 13:14:44 2008 -0700 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java Wed Jun 04 14:03:48 2008 -0700 @@ -274,10 +274,10 @@ // hc_klass is a HotSpot magic field and hence we can't // find it from InstanceKlass for java.lang.Class. TypeDataBase db = VM.getVM().getTypeDataBase(); - int hcKlassOffset = (int) Oop.getHeaderSize(); + int hcKlassOffset = (int) Instance.getHeaderSize(); try { hcKlassOffset += (db.lookupIntConstant("java_lang_Class::hc_klass_offset").intValue() * - db.getAddressSize()); + VM.getVM().getHeapOopSize()); } catch (RuntimeException re) { // ignore, currently java_lang_Class::hc_klass_offset is zero }