< prev index next >
src/share/vm/classfile/dictionary.hpp
Print this page
*** 34,44 ****
class DictionaryEntry;
class BoolObjectClosure;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! // The data structure for the system dictionary (and the shared system
// dictionary).
class Dictionary : public Hashtable<InstanceKlass*, mtClass> {
friend class VMStructs;
--- 34,44 ----
class DictionaryEntry;
class BoolObjectClosure;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! // The data structure for the class loader data dictionaries (and the shared system
// dictionary).
class Dictionary : public Hashtable<InstanceKlass*, mtClass> {
friend class VMStructs;
*** 108,125 ****
void printPerformanceInfoDetails();
#endif // ASSERT
void verify();
};
! // An entry in the system dictionary, this describes a class as
! // { InstanceKlass*, loader, protection_domain }.
class DictionaryEntry : public HashtableEntry<InstanceKlass*, mtClass> {
friend class VMStructs;
private:
// Contains the set of approved protection domains that can access
! // this system dictionary entry.
//
// This protection domain set is a set of tuples:
//
// (InstanceKlass C, initiating class loader ICL, Protection Domain PD)
//
--- 108,125 ----
void printPerformanceInfoDetails();
#endif // ASSERT
void verify();
};
! // An entry in the class loader data dictionaries, this describes a class as
! // { InstanceKlass*, protection_domain }.
class DictionaryEntry : public HashtableEntry<InstanceKlass*, mtClass> {
friend class VMStructs;
private:
// Contains the set of approved protection domains that can access
! // this dictionary entry.
//
// This protection domain set is a set of tuples:
//
// (InstanceKlass C, initiating class loader ICL, Protection Domain PD)
//
*** 142,152 ****
// Tells whether a protection is in the approved set.
bool contains_protection_domain(oop protection_domain) const;
// Adds a protection domain to the approved set.
void add_protection_domain(Dictionary* dict, Handle protection_domain);
! InstanceKlass* klass() const { return (InstanceKlass*)literal(); }
DictionaryEntry* next() const {
return (DictionaryEntry*)HashtableEntry<InstanceKlass*, mtClass>::next();
}
--- 142,152 ----
// Tells whether a protection is in the approved set.
bool contains_protection_domain(oop protection_domain) const;
// Adds a protection domain to the approved set.
void add_protection_domain(Dictionary* dict, Handle protection_domain);
! InstanceKlass* instance_klass() const { return literal(); }
DictionaryEntry* next() const {
return (DictionaryEntry*)HashtableEntry<InstanceKlass*, mtClass>::next();
}
*** 155,165 ****
}
ProtectionDomainEntry* pd_set() const { return _pd_set; }
void set_pd_set(ProtectionDomainEntry* pd_set) { _pd_set = pd_set; }
! // Tells whether the initiating class' protection can access the this _klass
bool is_valid_protection_domain(Handle protection_domain) {
if (!ProtectionDomainVerification) return true;
if (!SystemDictionary::has_checkPackageAccess()) return true;
return protection_domain() == NULL
--- 155,165 ----
}
ProtectionDomainEntry* pd_set() const { return _pd_set; }
void set_pd_set(ProtectionDomainEntry* pd_set) { _pd_set = pd_set; }
! // Tells whether the initiating class' protection domain can access the klass in this entry
bool is_valid_protection_domain(Handle protection_domain) {
if (!ProtectionDomainVerification) return true;
if (!SystemDictionary::has_checkPackageAccess()) return true;
return protection_domain() == NULL
< prev index next >