summaryrefslogtreecommitdiff
path: root/chapter25/src
diff options
context:
space:
mode:
Diffstat (limited to 'chapter25/src')
-rw-r--r--chapter25/src/main/java/com/seaofnodes/simple/node/LoadNode.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/chapter25/src/main/java/com/seaofnodes/simple/node/LoadNode.java b/chapter25/src/main/java/com/seaofnodes/simple/node/LoadNode.java
index b27da676..f5b61048 100644
--- a/chapter25/src/main/java/com/seaofnodes/simple/node/LoadNode.java
+++ b/chapter25/src/main/java/com/seaofnodes/simple/node/LoadNode.java
@@ -189,8 +189,10 @@ public class LoadNode extends MemOpNode {
case EscapeNode esc:
if( esc.self()==ptr ) // Proved equal
{ mem = esc.priv(); break; }
+ // Mal-formed, dying
+ if( !(esc.self().in(0) instanceof NewNode) )
+ break outer;
// Two NewNodes are always unequal
- assert esc.self().in(0) instanceof NewNode;
if( ptr.in(0) instanceof NewNode )
{ mem = esc.pub(); break; }
// TODO: Can we prove unequal?