< prev index next >
src/share/vm/interpreter/interpreterRuntime.cpp
Print this page
@@ -613,11 +613,11 @@
thread->last_frame().interpreter_frame_verify_monitor(elem);
#endif
if (PrintBiasedLockingStatistics) {
Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
}
- Handle h_obj(thread, elem->obj());
+ Handle h_obj(thread, oopDesc::bs()->write_barrier(elem->obj()));
assert(Universe::heap()->is_in_reserved_or_null(h_obj()),
"must be NULL or an object");
if (UseBiasedLocking) {
// Retry fast entry if bias is revoked to avoid unnecessary inflation
ObjectSynchronizer::fast_enter(h_obj, elem->lock(), true, CHECK);
@@ -635,11 +635,11 @@
//%note monitor_1
IRT_ENTRY_NO_ASYNC(void, InterpreterRuntime::monitorexit(JavaThread* thread, BasicObjectLock* elem))
#ifdef ASSERT
thread->last_frame().interpreter_frame_verify_monitor(elem);
#endif
- Handle h_obj(thread, elem->obj());
+ Handle h_obj(thread, oopDesc::bs()->write_barrier(elem->obj()));
assert(Universe::heap()->is_in_reserved_or_null(h_obj()),
"must be NULL or an object");
if (elem == NULL || h_obj()->is_unlocked()) {
THROW(vmSymbols::java_lang_IllegalMonitorStateException());
}
< prev index next >