src/hotspot/share/interpreter/interpreterRuntime.cpp
changeset 58015 dd84de796f2c
parent 57893 49fea19f0726
child 58177 4932dce35882
equal deleted inserted replaced
58014:aba258cd7df8 58015:dd84de796f2c
   767 #endif
   767 #endif
   768   if (PrintBiasedLockingStatistics) {
   768   if (PrintBiasedLockingStatistics) {
   769     Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
   769     Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
   770   }
   770   }
   771   Handle h_obj(thread, elem->obj());
   771   Handle h_obj(thread, elem->obj());
   772   assert(Universe::heap()->is_in_reserved_or_null(h_obj()),
   772   assert(Universe::heap()->is_in_or_null(h_obj()),
   773          "must be NULL or an object");
   773          "must be NULL or an object");
   774   ObjectSynchronizer::enter(h_obj, elem->lock(), CHECK);
   774   ObjectSynchronizer::enter(h_obj, elem->lock(), CHECK);
   775   assert(Universe::heap()->is_in_reserved_or_null(elem->obj()),
   775   assert(Universe::heap()->is_in_or_null(elem->obj()),
   776          "must be NULL or an object");
   776          "must be NULL or an object");
   777 #ifdef ASSERT
   777 #ifdef ASSERT
   778   thread->last_frame().interpreter_frame_verify_monitor(elem);
   778   thread->last_frame().interpreter_frame_verify_monitor(elem);
   779 #endif
   779 #endif
   780 JRT_END
   780 JRT_END
   784 JRT_ENTRY_NO_ASYNC(void, InterpreterRuntime::monitorexit(JavaThread* thread, BasicObjectLock* elem))
   784 JRT_ENTRY_NO_ASYNC(void, InterpreterRuntime::monitorexit(JavaThread* thread, BasicObjectLock* elem))
   785 #ifdef ASSERT
   785 #ifdef ASSERT
   786   thread->last_frame().interpreter_frame_verify_monitor(elem);
   786   thread->last_frame().interpreter_frame_verify_monitor(elem);
   787 #endif
   787 #endif
   788   Handle h_obj(thread, elem->obj());
   788   Handle h_obj(thread, elem->obj());
   789   assert(Universe::heap()->is_in_reserved_or_null(h_obj()),
   789   assert(Universe::heap()->is_in_or_null(h_obj()),
   790          "must be NULL or an object");
   790          "must be NULL or an object");
   791   if (elem == NULL || h_obj()->is_unlocked()) {
   791   if (elem == NULL || h_obj()->is_unlocked()) {
   792     THROW(vmSymbols::java_lang_IllegalMonitorStateException());
   792     THROW(vmSymbols::java_lang_IllegalMonitorStateException());
   793   }
   793   }
   794   ObjectSynchronizer::exit(h_obj(), elem->lock(), thread);
   794   ObjectSynchronizer::exit(h_obj(), elem->lock(), thread);
   851     methodHandle m (thread, last_frame.method());
   851     methodHandle m (thread, last_frame.method());
   852     Bytecode_invoke call(m, last_frame.bci());
   852     Bytecode_invoke call(m, last_frame.bci());
   853     Symbol* signature = call.signature();
   853     Symbol* signature = call.signature();
   854     receiver = Handle(thread, last_frame.callee_receiver(signature));
   854     receiver = Handle(thread, last_frame.callee_receiver(signature));
   855 
   855 
   856     assert(Universe::heap()->is_in_reserved_or_null(receiver()),
   856     assert(Universe::heap()->is_in_or_null(receiver()),
   857            "sanity check");
   857            "sanity check");
   858     assert(receiver.is_null() ||
   858     assert(receiver.is_null() ||
   859            !Universe::heap()->is_in_reserved(receiver->klass()),
   859            !Universe::heap()->is_in(receiver->klass()),
   860            "sanity check");
   860            "sanity check");
   861   }
   861   }
   862 
   862 
   863   // resolve method
   863   // resolve method
   864   CallInfo info;
   864   CallInfo info;