< prev index next >

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

Print this page

        

*** 41,114 **** }); } private static synchronized void initialize(TypeDataBase db) { Type type = db.lookupType("DictionaryEntry"); - pdSetField = type.getAddressField("_pd_set"); - loaderDataField = type.getAddressField("_loader_data"); - } - - // Fields - private static AddressField pdSetField; - private static AddressField loaderDataField; - - // Accessors - - public ProtectionDomainEntry pdSet() { - Address tmp = pdSetField.getValue(addr); - return (ProtectionDomainEntry) VMObjectFactory.newObject( - ProtectionDomainEntry.class, tmp); - } - - public Oop loader() { - return loaderData().getClassLoader(); - } - - public ClassLoaderData loaderData() { - return ClassLoaderData.instantiateWrapperFor(loaderDataField.getValue(addr)); } public Klass klass() { return (Klass)Metadata.instantiateWrapperFor(literalValue()); } public DictionaryEntry(Address addr) { super(addr); } ! public boolean equals(Symbol className, Oop classLoader) { InstanceKlass ik = (InstanceKlass) klass(); ! Oop loader = loader(); ! if (! ik.getName().equals(className)) { ! return false; ! } else { ! return (loader == null)? (classLoader == null) : ! (loader.equals(classLoader)); ! } ! } ! ! public boolean isValidProtectionDomain(Oop protectionDomain) { ! if (protectionDomain == null) { ! return true; ! } else { ! return containsProtectionDomain(protectionDomain); ! } ! } ! ! public boolean containsProtectionDomain(Oop protectionDomain) { ! InstanceKlass ik = (InstanceKlass) klass(); ! // Currently unimplemented and not used. ! // if (protectionDomain.equals(ik.getJavaMirror().getProtectionDomain())) { ! // return true; // Succeeds trivially ! // } ! for (ProtectionDomainEntry current = pdSet(); current != null; ! current = current.next()) { ! if (protectionDomain.equals(current.protectionDomain())) { ! return true; ! } ! } ! return false; } /* covariant return type :-( public DictionaryEntry next() { return (DictionaryEntry) super.next(); --- 41,63 ---- }); } private static synchronized void initialize(TypeDataBase db) { Type type = db.lookupType("DictionaryEntry"); } public Klass klass() { return (Klass)Metadata.instantiateWrapperFor(literalValue()); } public DictionaryEntry(Address addr) { super(addr); } ! public boolean equals(Symbol className) { InstanceKlass ik = (InstanceKlass) klass(); ! return ik.getName().equals(className); } /* covariant return type :-( public DictionaryEntry next() { return (DictionaryEntry) super.next();
< prev index next >