changeset 9017:055d555d5378

A Invoke without a state cannot deoptimize
author Christian Wimmer <christian.wimmer@oracle.com>
date Thu, 11 Apr 2013 14:26:54 -0700
parents 60b9fe7034e6
children 79312b185b74
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java	Thu Apr 11 14:24:09 2013 -0700
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java	Thu Apr 11 14:26:54 2013 -0700
@@ -147,6 +147,9 @@
     @Override
     public FrameState stateDuring() {
         FrameState stateAfter = stateAfter();
+        if (stateAfter == null) {
+            return null;
+        }
         FrameState stateDuring = stateAfter.duplicateModified(bci(), stateAfter.rethrowException(), kind());
         stateDuring.setDuringCall(true);
         return stateDuring;
@@ -179,7 +182,7 @@
 
     @Override
     public boolean canDeoptimize() {
-        return true;
+        return stateAfter() != null;
     }
 
     @Override