equal
deleted
inserted
replaced
201 if (!saved_fp_safe) { |
201 if (!saved_fp_safe) { |
202 return false; |
202 return false; |
203 } |
203 } |
204 |
204 |
205 // construct the potential sender |
205 // construct the potential sender |
|
206 |
206 frame sender(sender_sp, sender_unextended_sp, saved_fp, sender_pc); |
207 frame sender(sender_sp, sender_unextended_sp, saved_fp, sender_pc); |
207 return sender.is_entry_frame_valid(thread); |
208 |
|
209 // Validate the JavaCallWrapper an entry frame must have |
|
210 address jcw = (address)sender.entry_frame_call_wrapper(); |
|
211 |
|
212 bool jcw_safe = (jcw < thread->stack_base()) && (jcw > (address)sender.fp()); |
|
213 |
|
214 return jcw_safe; |
208 } |
215 } |
209 |
216 |
210 CompiledMethod* nm = sender_blob->as_compiled_method_or_null(); |
217 CompiledMethod* nm = sender_blob->as_compiled_method_or_null(); |
211 if (nm != NULL) { |
218 if (nm != NULL) { |
212 if (nm->is_deopt_mh_entry(sender_pc) || nm->is_deopt_entry(sender_pc) || |
219 if (nm->is_deopt_mh_entry(sender_pc) || nm->is_deopt_entry(sender_pc) || |