equal
deleted
inserted
replaced
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"); |