diff src/share/vm/runtime/vframe_hp.cpp @ 900:9987d9d5eb0e

6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot Summary: developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens Reviewed-by: kvn, never, jrose, twisti
author cfang
date Fri, 31 Jul 2009 17:12:33 -0700
parents b109e761e927
children 15bbd3f505c0
line wrap: on
line diff
--- a/src/share/vm/runtime/vframe_hp.cpp	Fri Jul 31 12:04:07 2009 -0700
+++ b/src/share/vm/runtime/vframe_hp.cpp	Fri Jul 31 17:12:33 2009 -0700
@@ -276,6 +276,15 @@
   return scope()->bci();
 }
 
+bool compiledVFrame::should_reexecute() const {
+  if (scope() == NULL) {
+    // native nmethods have no scope the method/bci is implied
+    nmethod* nm = code();
+    assert(nm->is_native_method(), "must be native");
+    return false;
+  }
+  return scope()->should_reexecute();
+}
 
 vframe* compiledVFrame::sender() const {
   const frame f = fr();