< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java

Print this page

        

@@ -24,19 +24,17 @@
 
 package sun.jvm.hotspot.memory;
 
 import java.util.*;
 import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.classfile.*;
 import sun.jvm.hotspot.oops.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.types.*;
 
 public class SystemDictionary {
-  private static AddressField dictionaryField;
   private static AddressField sharedDictionaryField;
-  private static AddressField placeholdersField;
-  private static AddressField loaderConstraintTableField;
   private static sun.jvm.hotspot.types.OopField javaSystemLoaderField;
 
   private static AddressField objectKlassField;
   private static AddressField classLoaderKlassField;
   private static AddressField stringKlassField;

@@ -54,14 +52,11 @@
   }
 
   private static synchronized void initialize(TypeDataBase db) {
     Type type = db.lookupType("SystemDictionary");
 
-    dictionaryField = type.getAddressField("_dictionary");
     sharedDictionaryField = type.getAddressField("_shared_dictionary");
-    placeholdersField = type.getAddressField("_placeholders");
-    loaderConstraintTableField = type.getAddressField("_loader_constraints");
     javaSystemLoaderField = type.getOopField("_java_system_loader");
 
     objectKlassField = type.getAddressField(WK_KLASS("Object_klass"));
     classLoaderKlassField = type.getAddressField(WK_KLASS("ClassLoader_klass"));
     stringKlassField = type.getAddressField(WK_KLASS("String_klass"));

@@ -79,30 +74,15 @@
   private static String WK_KLASS_ENUM_NAME(String kname) {
       //#define WK_KLASS_ENUM_NAME(kname)    kname##_knum
       return (kname+"_knum");
   }
 
-  public Dictionary dictionary() {
-    Address tmp = dictionaryField.getValue();
-    return (Dictionary) VMObjectFactory.newObject(Dictionary.class, tmp);
-  }
-
   public Dictionary sharedDictionary() {
     Address tmp = sharedDictionaryField.getValue();
     return (Dictionary) VMObjectFactory.newObject(Dictionary.class, tmp);
   }
 
-  public PlaceholderTable placeholders() {
-    Address tmp = placeholdersField.getValue();
-    return (PlaceholderTable) VMObjectFactory.newObject(PlaceholderTable.class, tmp);
-  }
-
-  public LoaderConstraintTable constraints() {
-    Address tmp = placeholdersField.getValue();
-    return (LoaderConstraintTable) VMObjectFactory.newObject(LoaderConstraintTable.class, tmp);
-  }
-
   // few well known classes -- not all are added here.
   // add more if needed.
   public static InstanceKlass getThreadKlass() {
     return (InstanceKlass)Metadata.instantiateWrapperFor(threadKlassField.getValue());
   }

@@ -130,73 +110,17 @@
   public static InstanceKlass getMethodHandleKlass() {
     return (InstanceKlass)Metadata.instantiateWrapperFor(methodHandleKlassField.getValue());
   }
 
   public InstanceKlass getAbstractOwnableSynchronizerKlass() {
-    return (InstanceKlass) find("java/util/concurrent/locks/AbstractOwnableSynchronizer",
-                                null, null);
+    ClassLoaderDataGraph cldg = VM.getVM().getClassLoaderDataGraph();
+    return (InstanceKlass) cldg.find("java/util/concurrent/locks/AbstractOwnableSynchronizer");
   }
 
   public static Oop javaSystemLoader() {
     return newOop(javaSystemLoaderField.getValue());
   }
 
   private static Oop newOop(OopHandle handle) {
     return VM.getVM().getObjectHeap().newOop(handle);
   }
-
-  /** Lookup an already loaded class. If not found null is returned. */
-  public Klass find(String className, Oop classLoader, Oop protectionDomain) {
-    Symbol sym = VM.getVM().getSymbolTable().probe(className);
-    if (sym == null) return null;
-    return find(sym, classLoader, protectionDomain);
-  }
-
-  /** Lookup an already loaded class. If not found null is returned. */
-  public Klass find(Symbol className, Oop classLoader, Oop protectionDomain) {
-    Dictionary dict = dictionary();
-    long hash = dict.computeHash(className, classLoader);
-    int index = dict.hashToIndex(hash);
-    return dict.find(index, hash, className, classLoader, protectionDomain);
-  }
-
-  /** Interface for iterating through all classes in dictionary */
-  public static interface ClassVisitor {
-    public void visit(Klass k);
-  }
-
-  /** Interface for iterating through all classes and their class
-      loaders in dictionary */
-  public static interface ClassAndLoaderVisitor {
-    public void visit(Klass k, Oop loader);
-  }
-
-  /** Iterate over all klasses - including object, primitive
-      array klasses */
-  public void allClassesDo(final ClassVisitor v) {
-    ClassVisitor visitor = new ClassVisitor() {
-      public void visit(Klass k) {
-        for (Klass l = k; l != null; l = l.arrayKlassOrNull()) {
-          v.visit(l);
-        }
-      }
-    };
-    classesDo(visitor);
-    VM.getVM().getUniverse().basicTypeClassesDo(visitor);
-  }
-
-  /** Iterate over all klasses in dictionary; just the classes from
-      declaring class loaders */
-  public void classesDo(ClassVisitor v) {
-    dictionary().classesDo(v);
-  }
-
-  /** All classes, and their class loaders */
-  public void classesDo(ClassAndLoaderVisitor v) {
-    dictionary().classesDo(v);
-  }
-
-  /** All array classes of primitive type, and their class loaders */
-  public void primArrayClassesDo(ClassAndLoaderVisitor v) {
-    placeholders().primArrayClassesDo(v);
-  }
 }
< prev index next >