< prev index next >
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Klass.java
Print this page
*** 49,59 ****
public static int LH_ARRAY_TAG_TYPE_VALUE;
public static int LH_ARRAY_TAG_OBJ_VALUE;
private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
Type type = db.lookupType("Klass");
! javaMirror = new OopField(type.getOopField("_java_mirror"), 0);
superField = new MetadataField(type.getAddressField("_super"), 0);
layoutHelper = new IntField(type.getJIntField("_layout_helper"), 0);
name = type.getAddressField("_name");
accessFlags = new CIntField(type.getCIntegerField("_access_flags"), 0);
try {
--- 49,59 ----
public static int LH_ARRAY_TAG_TYPE_VALUE;
public static int LH_ARRAY_TAG_OBJ_VALUE;
private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
Type type = db.lookupType("Klass");
! javaMirror = type.getAddressField("_java_mirror");
superField = new MetadataField(type.getAddressField("_super"), 0);
layoutHelper = new IntField(type.getJIntField("_layout_helper"), 0);
name = type.getAddressField("_name");
accessFlags = new CIntField(type.getCIntegerField("_access_flags"), 0);
try {
*** 86,96 ****
}
public boolean isKlass() { return true; }
// Fields
! private static OopField javaMirror;
private static MetadataField superField;
private static IntField layoutHelper;
private static AddressField name;
private static CIntField accessFlags;
private static MetadataField subklass;
--- 86,96 ----
}
public boolean isKlass() { return true; }
// Fields
! private static AddressField javaMirror;
private static MetadataField superField;
private static IntField layoutHelper;
private static AddressField name;
private static CIntField accessFlags;
private static MetadataField subklass;
*** 107,117 ****
protected Symbol getSymbol(AddressField field) {
return Symbol.create(addr.getAddressAt(field.getOffset()));
}
// Accessors for declared fields
! public Instance getJavaMirror() { return (Instance) javaMirror.getValue(this); }
public Klass getSuper() { return (Klass) superField.getValue(this); }
public Klass getJavaSuper() { return null; }
public int getLayoutHelper() { return (int) layoutHelper.getValue(this); }
public Symbol getName() { return getSymbol(name); }
public long getAccessFlags() { return accessFlags.getValue(this); }
--- 107,125 ----
protected Symbol getSymbol(AddressField field) {
return Symbol.create(addr.getAddressAt(field.getOffset()));
}
// Accessors for declared fields
! public Instance getJavaMirror() {
! Address handle = javaMirror.getValue(getAddress());
! if (handle != null) {
! // Load through the handle
! OopHandle refs = handle.getOopHandleAt(0);
! return (Instance)VM.getVM().getObjectHeap().newOop(refs);
! }
! return null;
! }
public Klass getSuper() { return (Klass) superField.getValue(this); }
public Klass getJavaSuper() { return null; }
public int getLayoutHelper() { return (int) layoutHelper.getValue(this); }
public Symbol getName() { return getSymbol(name); }
public long getAccessFlags() { return accessFlags.getValue(this); }
*** 183,193 ****
public void printValueOn(PrintStream tty) {
tty.print("Klass");
}
public void iterateFields(MetadataVisitor visitor) {
! visitor.doOop(javaMirror, true);
visitor.doMetadata(superField, true);
visitor.doInt(layoutHelper, true);
// visitor.doOop(name, true);
visitor.doCInt(accessFlags, true);
visitor.doMetadata(subklass, true);
--- 191,201 ----
public void printValueOn(PrintStream tty) {
tty.print("Klass");
}
public void iterateFields(MetadataVisitor visitor) {
! // visitor.doOop(javaMirror, true);
visitor.doMetadata(superField, true);
visitor.doInt(layoutHelper, true);
// visitor.doOop(name, true);
visitor.doCInt(accessFlags, true);
visitor.doMetadata(subklass, true);
< prev index next >