Mercurial > hg > graal-compiler
changeset 15900:54151c986dbb
explicit getAndGrow and setAndGrow functionality on NodeMap
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Mon, 26 May 2014 13:37:11 +0200 |
parents | e065b9746246 |
children | dd863084c7ad |
files | graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeMap.java |
diffstat | 1 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeMap.java Mon May 26 13:02:29 2014 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeMap.java Mon May 26 13:37:11 2014 +0200 @@ -46,6 +46,19 @@ return (T) values[getNodeId(node)]; } + @SuppressWarnings("unchecked") + public T getAndGrow(Node node) { + checkAndGrow(node); + return (T) values[getNodeId(node)]; + } + + private void checkAndGrow(Node node) { + if (isNew(node)) { + this.values = Arrays.copyOf(values, graph.nodeIdCount()); + } + assert check(node); + } + public boolean isEmpty() { return !entries().iterator().hasNext(); } @@ -78,6 +91,11 @@ values[getNodeId(node)] = value; } + public void setAndGrow(Node node, T value) { + checkAndGrow(node); + values[getNodeId(node)] = value; + } + public int size() { return values.length; }