# HG changeset patch # User Doug Simon # Date 1403707989 -7200 # Node ID d837c02aba5805fd96c8aae2b94bb1acac3205ed # Parent df5ac85a481320bb5143173ba4af85d04145ddd7 support constructing a NodeInputList from a collection of NodeInterface objects diff -r df5ac85a4813 -r d837c02aba58 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeInputList.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeInputList.java Wed Jun 25 16:52:29 2014 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeInputList.java Wed Jun 25 16:53:09 2014 +0200 @@ -49,6 +49,12 @@ this.self = self; } + public NodeInputList(Node self, Collection elements) { + super(elements); + assert self.usages().isEmpty(); + this.self = self; + } + @Override protected void update(T oldNode, T newNode) { self.updateUsages(oldNode, newNode); diff -r df5ac85a4813 -r d837c02aba58 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java Wed Jun 25 16:52:29 2014 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java Wed Jun 25 16:53:09 2014 +0200 @@ -77,6 +77,24 @@ } } + protected NodeList(Collection elements) { + if (elements == null || elements.isEmpty()) { + this.size = 0; + this.nodes = EMPTY_NODE_ARRAY; + this.initialSize = 0; + } else { + this.size = elements.size(); + this.initialSize = elements.size(); + this.nodes = new Node[elements.size()]; + int i = 0; + for (NodeInterface n : elements) { + this.nodes[i] = n.asNode(); + assert this.nodes[i] == null || !this.nodes[i].isDeleted(); + i++; + } + } + } + protected abstract void update(T oldNode, T newNode); @Override