changeset 9881:7779b1d5ba37

don't synthesize a deoptState in ForeignCallNode is canDeoptimize == false
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 05 Jun 2013 14:18:35 +0200
parents f7ec3ec8a03c
children 5945a36ccba4
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java	Wed Jun 05 13:10:42 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java	Wed Jun 05 14:18:35 2013 +0200
@@ -91,7 +91,7 @@
     public FrameState getDeoptimizationState() {
         if (deoptState != null) {
             return deoptState;
-        } else if (stateAfter() != null) {
+        } else if (stateAfter() != null && canDeoptimize()) {
             FrameState stateDuring = stateAfter();
             if ((stateDuring.stackSize() > 0 && stateDuring.stackAt(stateDuring.stackSize() - 1) == this) || (stateDuring.stackSize() > 1 && stateDuring.stackAt(stateDuring.stackSize() - 2) == this)) {
                 stateDuring = stateDuring.duplicateModified(stateDuring.bci, stateDuring.rethrowException(), this.kind());