# HG changeset patch # User Tom Rodriguez # Date 1392837517 28800 # Node ID 5568586d32a6d8131b652caf0e1c516b7ca2ee46 # Parent 67905c0490161d4486b976c8f915c64a2c044f2b factor out listener notify. fix typo diff -r 67905c049016 -r 5568586d32a6 graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/ClassSubstitution.java --- a/graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/ClassSubstitution.java Wed Feb 19 11:16:42 2014 -0800 +++ b/graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/ClassSubstitution.java Wed Feb 19 11:18:37 2014 -0800 @@ -61,6 +61,5 @@ * Determines if the substitutions in a class are globally enabled. Individual * MethodSubstitutions can also have guards and those override this guard. */ - Class defaultGuard() default SubstitutionGuard.class; } diff -r 67905c049016 -r 5568586d32a6 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Wed Feb 19 11:16:42 2014 -0800 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Wed Feb 19 11:18:37 2014 -0800 @@ -467,17 +467,11 @@ } if (newInput != null) { if (newInput.recordsUsages()) { - NodeChangedListener listener = graph.inputChangedListener; - if (listener != null) { - listener.nodeChanged(this); - } + maybeNotifyChanged(this); newInput.addUsage(this); } } else if (oldInput != null && oldInput.recordsUsages() && oldInput.usages().isEmpty()) { - NodeChangedListener listener = graph.usagesDroppedToZeroListener; - if (listener != null) { - listener.nodeChanged(oldInput); - } + maybeNotifyZeroInputs(oldInput); } } } @@ -531,10 +525,7 @@ boolean result = usage.getNodeClass().replaceFirstInput(usage, this, other); assert assertTrue(result, "not found in inputs, usage: %s", usage); if (other != null) { - NodeChangedListener listener = graph.inputChangedListener; - if (listener != null) { - listener.nodeChanged(usage); - } + maybeNotifyChanged(usage); if (other.recordsUsages()) { other.addUsage(usage); } @@ -543,6 +534,22 @@ clearUsages(); } + private void maybeNotifyChanged(Node usage) { + assert graph == null || !graph.isFrozen(); + NodeChangedListener listener = graph.inputChangedListener; + if (listener != null) { + listener.nodeChanged(usage); + } + } + + private void maybeNotifyZeroInputs(Node oldInput) { + assert graph == null || !graph.isFrozen(); + NodeChangedListener listener = graph.usagesDroppedToZeroListener; + if (listener != null) { + listener.nodeChanged(oldInput); + } + } + public void replaceAtPredecessor(Node other) { assert checkReplaceWith(other); if (predecessor != null) { @@ -576,16 +583,12 @@ public void clearInputs() { assert assertFalse(isDeleted(), "cannot clear inputs of deleted node"); - assert graph == null || !graph.isFrozen(); for (Node input : inputs()) { if (input.recordsUsages()) { removeThisFromUsages(input); if (input.usages().isEmpty()) { - NodeChangedListener listener = graph.usagesDroppedToZeroListener; - if (listener != null) { - listener.nodeChanged(input); - } + maybeNotifyZeroInputs(input); } } }