src/share/vm/runtime/frame.cpp

changeset 9858
b985cbb00e68
parent 6973
4af19b914f53
child 9931
fd44df5e3bc3
     1.1 --- a/src/share/vm/runtime/frame.cpp	Thu Aug 01 03:44:03 2019 +0100
     1.2 +++ b/src/share/vm/runtime/frame.cpp	Mon Aug 12 18:30:40 2019 +0300
     1.3 @@ -239,6 +239,19 @@
     1.4    return NULL;
     1.5  }
     1.6  
     1.7 +bool frame::is_entry_frame_valid(JavaThread* thread) const {
     1.8 +  // Validate the JavaCallWrapper an entry frame must have
     1.9 +  address jcw = (address)entry_frame_call_wrapper();
    1.10 +  bool jcw_safe = (jcw < thread->stack_base()) && (jcw > (address)fp()); // less than stack base
    1.11 +  if (!jcw_safe) {
    1.12 +    return false;
    1.13 +  }
    1.14 +
    1.15 +  // Validate sp saved in the java frame anchor
    1.16 +  JavaFrameAnchor* jfa = entry_frame_call_wrapper()->anchor();
    1.17 +  return (jfa->last_Java_sp() > sp());
    1.18 +}
    1.19 +
    1.20  bool frame::should_be_deoptimized() const {
    1.21    if (_deopt_state == is_deoptimized ||
    1.22        !is_compiled_frame() ) return false;

mercurial