< prev index next >

src/os_cpu/linux_x86/vm/os_linux_x86.cpp

Print this page

        

@@ -189,11 +189,13 @@
     // been generated while the compilers perform it before. To maintain
     // semantic consistency between interpreted and compiled frames, the
     // method returns the Java sender of the current frame.
     *fr = os::fetch_frame_from_ucontext(thread, uc);
     if (!fr->is_first_java_frame()) {
-      assert(fr->safe_for_sender(thread), "Safety check");
+      // get_frame_at_stack_banging_point() is only called when we
+      // have well defined stacks so java_sender() calls do not need
+      // to assert safe_for_sender() first.
       *fr = fr->java_sender();
     }
   } else {
     // more complex code with compiled code
     assert(!Interpreter::contains(pc), "Interpreted methods should have been handled above");

@@ -207,12 +209,14 @@
       // has been pushed on the stack
       intptr_t* fp = os::Linux::ucontext_get_fp(uc);
       intptr_t* sp = os::Linux::ucontext_get_sp(uc);
       *fr = frame(sp + 1, fp, (address)*sp);
       if (!fr->is_java_frame()) {
-        assert(fr->safe_for_sender(thread), "Safety check");
         assert(!fr->is_first_frame(), "Safety check");
+        // get_frame_at_stack_banging_point() is only called when we
+        // have well defined stacks so java_sender() calls do not need
+        // to assert safe_for_sender() first.
         *fr = fr->java_sender();
       }
     }
   }
   assert(fr->is_java_frame(), "Safety check");
< prev index next >