changeset 19990:9a7ede0d673b

avoid unnecessary copying in NodeList.toArray(A[] a)
author Doug Simon <doug.simon@oracle.com>
date Sun, 22 Mar 2015 12:29:01 +0100
parents 9912bc54ec0f
children 4187aa9d6a10
files graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java	Sun Mar 22 00:12:34 2015 +0100
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java	Sun Mar 22 12:29:01 2015 +0100
@@ -335,8 +335,12 @@
 
     @Override
     @SuppressWarnings("unchecked")
-    public <A> A[] toArray(A[] template) {
-        return (A[]) Arrays.copyOf(nodes, size, template.getClass());
+    public <A> A[] toArray(A[] a) {
+        if (a.length <= size) {
+            System.arraycopy(nodes, 0, a, 0, size);
+            return a;
+        }
+        return (A[]) Arrays.copyOf(nodes, size, a.getClass());
     }
 
     @Override