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