< prev index next >
src/cpu/x86/vm/frame_x86.cpp
Print this page
*** 109,126 ****
if (is_entry_frame()) {
// an entry frame must have a valid fp.
if (!fp_safe) return false;
! // Validate the JavaCallWrapper an entry frame must have
!
! address jcw = (address)entry_frame_call_wrapper();
!
! bool jcw_safe = (jcw < thread->stack_base()) && ( jcw > fp);
!
! return jcw_safe;
!
}
intptr_t* sender_sp = NULL;
intptr_t* sender_unextended_sp = NULL;
address sender_pc = NULL;
--- 109,119 ----
if (is_entry_frame()) {
// an entry frame must have a valid fp.
if (!fp_safe) return false;
! return entry_frame_is_safe(thread);
}
intptr_t* sender_sp = NULL;
intptr_t* sender_unextended_sp = NULL;
address sender_pc = NULL;
*** 207,225 ****
if (!saved_fp_safe) {
return false;
}
// construct the potential sender
-
frame sender(sender_sp, sender_unextended_sp, saved_fp, sender_pc);
!
! // Validate the JavaCallWrapper an entry frame must have
! address jcw = (address)sender.entry_frame_call_wrapper();
!
! bool jcw_safe = (jcw < thread->stack_base()) && ( jcw > (address)sender.fp());
!
! return jcw_safe;
}
CompiledMethod* nm = sender_blob->as_compiled_method_or_null();
if (nm != NULL) {
if (nm->is_deopt_mh_entry(sender_pc) || nm->is_deopt_entry(sender_pc) ||
--- 200,211 ----
if (!saved_fp_safe) {
return false;
}
// construct the potential sender
frame sender(sender_sp, sender_unextended_sp, saved_fp, sender_pc);
! return sender.entry_frame_is_safe(thread);
}
CompiledMethod* nm = sender_blob->as_compiled_method_or_null();
if (nm != NULL) {
if (nm->is_deopt_mh_entry(sender_pc) || nm->is_deopt_entry(sender_pc) ||
< prev index next >