hotspot/src/share/vm/runtime/frame.cpp
changeset 18938 ff8f8cec9434
parent 18439 725ce18186b3
child 19334 3aa9ca404965
child 22823 40b2c6c30123
equal deleted inserted replaced
18937:34f568c7e7ca 18938:ff8f8cec9434
   219   return s.is_first_frame();
   219   return s.is_first_frame();
   220 }
   220 }
   221 
   221 
   222 
   222 
   223 bool frame::entry_frame_is_first() const {
   223 bool frame::entry_frame_is_first() const {
   224   return entry_frame_call_wrapper()->anchor()->last_Java_sp() == NULL;
   224   return entry_frame_call_wrapper()->is_first_frame();
   225 }
   225 }
   226 
   226 
       
   227 JavaCallWrapper* frame::entry_frame_call_wrapper_if_safe(JavaThread* thread) const {
       
   228   JavaCallWrapper** jcw = entry_frame_call_wrapper_addr();
       
   229   address addr = (address) jcw;
       
   230 
       
   231   // addr must be within the usable part of the stack
       
   232   if (thread->is_in_usable_stack(addr)) {
       
   233     return *jcw;
       
   234   }
       
   235 
       
   236   return NULL;
       
   237 }
   227 
   238 
   228 bool frame::should_be_deoptimized() const {
   239 bool frame::should_be_deoptimized() const {
   229   if (_deopt_state == is_deoptimized ||
   240   if (_deopt_state == is_deoptimized ||
   230       !is_compiled_frame() ) return false;
   241       !is_compiled_frame() ) return false;
   231   assert(_cb != NULL && _cb->is_nmethod(), "must be an nmethod");
   242   assert(_cb != NULL && _cb->is_nmethod(), "must be an nmethod");