< prev index next >
src/share/vm/oops/instanceKlass.cpp
Print this page
*** 469,478 ****
--- 469,479 ----
}
void InstanceKlass::eager_initialize_impl(instanceKlassHandle this_k) {
EXCEPTION_MARK;
oop init_lock = this_k->init_lock();
+ init_lock = oopDesc::bs()->write_barrier(init_lock);
ObjectLocker ol(init_lock, THREAD, init_lock != NULL);
// abort if someone beat us to the initialization
if (!this_k->is_not_initialized()) return; // note: not equivalent to is_initialized()
*** 615,624 ****
--- 616,626 ----
PerfClassTraceTime::CLASS_LINK);
// verification & rewriting
{
oop init_lock = this_k->init_lock();
+ init_lock = oopDesc::bs()->write_barrier(init_lock);
ObjectLocker ol(init_lock, THREAD, init_lock != NULL);
// rewritten will have been set if loader constraint error found
// on an earlier link attempt
// don't verify or rewrite if already rewritten
*** 748,757 ****
--- 750,760 ----
// refer to the JVM book page 47 for description of steps
// Step 1
{
oop init_lock = this_k->init_lock();
+ init_lock = oopDesc::bs()->write_barrier(init_lock);
ObjectLocker ol(init_lock, THREAD, init_lock != NULL);
Thread *self = THREAD; // it's passed the current thread
// Step 2
*** 880,889 ****
--- 883,893 ----
set_initialization_state_and_notify_impl(kh, state, CHECK);
}
void InstanceKlass::set_initialization_state_and_notify_impl(instanceKlassHandle this_k, ClassState state, TRAPS) {
oop init_lock = this_k->init_lock();
+ init_lock = oopDesc::bs()->write_barrier(init_lock);
ObjectLocker ol(init_lock, THREAD, init_lock != NULL);
this_k->set_init_state(state);
this_k->fence_and_clear_init_lock();
ol.notify_all(CHECK);
}
*** 2252,2262 ****
_source_debug_extension = sde;
}
}
address InstanceKlass::static_field_addr(int offset) {
! return (address)(offset + InstanceMirrorKlass::offset_of_static_fields() + cast_from_oop<intptr_t>(java_mirror()));
}
const char* InstanceKlass::signature_name() const {
int hash_len = 0;
--- 2256,2266 ----
_source_debug_extension = sde;
}
}
address InstanceKlass::static_field_addr(int offset) {
! return (address)(offset + InstanceMirrorKlass::offset_of_static_fields() + cast_from_oop<intptr_t>(oopDesc::bs()->write_barrier(java_mirror())));
}
const char* InstanceKlass::signature_name() const {
int hash_len = 0;
< prev index next >