< prev index next >
src/share/vm/classfile/dictionary.cpp
Print this page
@@ -99,11 +99,11 @@
bool DictionaryEntry::contains_protection_domain(oop protection_domain) const {
#ifdef ASSERT
if (protection_domain == instance_klass()->protection_domain()) {
// Ensure this doesn't show up in the pd_set (invariant)
bool in_pd_set = false;
- for (ProtectionDomainEntry* current = _pd_set;
+ for (ProtectionDomainEntry* current = pd_set_acquire();
current != NULL;
current = current->next()) {
if (current->protection_domain() == protection_domain) {
in_pd_set = true;
break;
@@ -119,11 +119,11 @@
if (protection_domain == instance_klass()->protection_domain()) {
// Succeeds trivially
return true;
}
- for (ProtectionDomainEntry* current = _pd_set;
+ for (ProtectionDomainEntry* current = pd_set_acquire();
current != NULL;
current = current->next()) {
if (current->protection_domain() == protection_domain) return true;
}
return false;
@@ -133,16 +133,16 @@
void DictionaryEntry::add_protection_domain(Dictionary* dict, Handle protection_domain) {
assert_locked_or_safepoint(SystemDictionary_lock);
if (!contains_protection_domain(protection_domain())) {
ProtectionDomainCacheEntry* entry = SystemDictionary::cache_get(protection_domain);
ProtectionDomainEntry* new_head =
- new ProtectionDomainEntry(entry, _pd_set);
+ new ProtectionDomainEntry(entry, pd_set());
// Warning: Preserve store ordering. The SystemDictionary is read
// without locks. The new ProtectionDomainEntry must be
// complete before other threads can be allowed to see it
// via a store to _pd_set.
- OrderAccess::release_store_ptr(&_pd_set, new_head);
+ release_set_pd_set(new_head);
}
LogTarget(Trace, protectiondomain) lt;
if (lt.is_enabled()) {
LogStream ls(lt);
print_count(&ls);
< prev index next >