Skip to content

Commit 301243d

Browse files
Christian Wimmerntemmar
Christian Wimmer
authored andcommitted
Do not allocate 0-length Node[] arrays
1 parent 8d6e205 commit 301243d

File tree

1 file changed

+12
-3
lines changed
  • compiler/src/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph

1 file changed

+12
-3
lines changed

compiler/src/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeList.java

+12-3
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ protected NodeList(Node self, int initialSize) {
7676
checkMaxSize(initialSize);
7777
this.size = initialSize;
7878
this.initialSize = initialSize;
79-
this.nodes = new Node[initialSize];
79+
if (initialSize == 0) {
80+
this.nodes = EMPTY_NODE_ARRAY;
81+
} else {
82+
this.nodes = new Node[initialSize];
83+
}
8084
}
8185

8286
protected NodeList(Node self, T[] elements) {
@@ -232,8 +236,13 @@ public void initialize(int index, Node node) {
232236
void copy(NodeList<? extends Node> other) {
233237
self.incModCount();
234238
incModCount();
235-
Node[] newNodes = new Node[other.size];
236-
System.arraycopy(other.nodes, 0, newNodes, 0, newNodes.length);
239+
Node[] newNodes;
240+
if (other.size == 0) {
241+
newNodes = EMPTY_NODE_ARRAY;
242+
} else {
243+
newNodes = new Node[other.size];
244+
System.arraycopy(other.nodes, 0, newNodes, 0, newNodes.length);
245+
}
237246
nodes = newNodes;
238247
size = other.size;
239248
}

0 commit comments

Comments
 (0)