comparison src/share/vm/runtime/frame.cpp @ 11146:e619a2766bcc

8016131: nsk/sysdict/vm/stress/chain tests crash the VM in 'entry_frame_is_first()' Reviewed-by: jrose, kvn, mgronlun
author rbackman
date Wed, 12 Jun 2013 11:17:39 +0200
parents e0c9a1d29eb4
children 6b0fd0964b87 4b2838704fd5 94c202aa2646
comparison
equal deleted inserted replaced
11145:39deebbc90b3 11146:e619a2766bcc
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");