< prev index next >

src/hotspot/cpu/ppc/frame_ppc.cpp

Print this page
rev 58072 : [mq]: v2

@@ -60,22 +60,19 @@
   if (!thread->is_in_usable_stack(sp)) {
     return false;
   }
 
   // Unextended sp must be within the stack
-  bool unextended_sp_safe = (unextended_sp < thread->stack_base());
-
-  if (!unextended_sp_safe) {
+  if (!thread->is_in_full_stack(unextended_sp)) {
     return false;
   }
 
   // An fp must be within the stack and above (but not equal) sp.
-  bool fp_safe = (fp < thread->stack_base()) && (fp > sp);
+  bool fp_safe = thread->is_in_stack_range_excl(fp, sp);
   // An interpreter fp must be within the stack and above (but not equal) sp.
   // Moreover, it must be at least the size of the ijava_state structure.
-  bool fp_interp_safe = (fp < thread->stack_base()) && (fp > sp) &&
-    ((fp - sp) >= ijava_state_size);
+  bool fp_interp_safe = fp_safe && ((fp - sp) >= ijava_state_size);
 
   // We know sp/unextended_sp are safe, only fp is questionable here
 
   // If the current frame is known to the code cache then we can attempt to
   // to construct the sender and do some validation of it. This goes a long way

@@ -130,11 +127,11 @@
     // Do we have a valid fp?
     address sender_fp = (address) sender.fp();
 
     // sender_fp must be within the stack and above (but not
     // equal) current frame's fp.
-    if (sender_fp >= thread->stack_base() || sender_fp <= fp) {
+    if (!thread->is_in_stack_range_excl(sender_fp, fp)) {
         return false;
     }
 
     // If the potential sender is the interpreter then we can do some more checking.
     if (Interpreter::contains(sender_pc)) {
< prev index next >