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