< prev index next >
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/classfile/ClassLoaderData.java
Print this page
rev 58565 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: duke
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com
@@ -42,16 +42,18 @@
private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
Type type = db.lookupType("ClassLoaderData");
classLoaderFieldOffset = type.getAddressField("_class_loader").getOffset();
nextField = type.getAddressField("_next");
klassesField = new MetadataField(type.getAddressField("_klasses"), 0);
+ hasClassMirrorHolderField = new CIntField(type.getCIntegerField("_has_class_mirror_holder"), 0);
dictionaryField = type.getAddressField("_dictionary");
}
private static long classLoaderFieldOffset;
private static AddressField nextField;
private static MetadataField klassesField;
+ private static CIntField hasClassMirrorHolderField;
private static AddressField dictionaryField;
public ClassLoaderData(Address addr) {
super(addr);
}
@@ -72,10 +74,14 @@
Address addr = getAddress().addOffsetTo(classLoaderFieldOffset);
VMOopHandle vmOopHandle = VMObjectFactory.newObject(VMOopHandle.class, addr);
return vmOopHandle.resolve();
}
+ public boolean gethasClassMirrorHolder() {
+ return hasClassMirrorHolderField.getValue(this) != 0;
+ }
+
public ClassLoaderData next() {
return instantiateWrapperFor(nextField.getValue(getAddress()));
}
public Klass getKlasses() { return (Klass)klassesField.getValue(this); }
< prev index next >