From c8d1c3a25e2bfa9645c4b91d3dde9c4857f636f2 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 16 Jul 2006 03:19:39 -0400 Subject: [PATCH 1/1] checkpoint darcs-hash:20060716071939-5007d-1943bc593f4c5f6b1f5fa38a3412812ee9f200de.gz --- src/edu/berkeley/sbp/Tree.java | 8 ++++---- src/edu/berkeley/sbp/util/ArrayUtil.java | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/edu/berkeley/sbp/Tree.java b/src/edu/berkeley/sbp/Tree.java index 7dbda47..1b9ddfa 100644 --- a/src/edu/berkeley/sbp/Tree.java +++ b/src/edu/berkeley/sbp/Tree.java @@ -48,10 +48,7 @@ public class Tree this.location = loc; this.head = head; this.lift = lift && children != null && children.length > 0; - - Tree[] children2 = children==null ? new Tree[0] : new Tree[children.length]; - if (children != null) System.arraycopy(children, 0, children2, 0, children.length); - this.children = children2; + this.children = ArrayUtil.clone(children, Tree.class); } @@ -86,6 +83,9 @@ public class Tree public boolean isTransparent() { return false; } public boolean isHidden() { return false; } + + // TreeFunctor ///////////////////////////////////////////////////////////////////////////// + public static interface TreeFunctor extends Functor>, R> { } } diff --git a/src/edu/berkeley/sbp/util/ArrayUtil.java b/src/edu/berkeley/sbp/util/ArrayUtil.java index f4f7278..d52de30 100644 --- a/src/edu/berkeley/sbp/util/ArrayUtil.java +++ b/src/edu/berkeley/sbp/util/ArrayUtil.java @@ -11,4 +11,10 @@ public class ArrayUtil { return ret; } + public static T[] clone(T[] source, Class c) { + T[] dest = (T[])Array.newInstance(c, source==null ? 0 : source.length); + if (source != null) System.arraycopy(source, 0, dest, 0, source.length); + return dest; + } + } -- 1.7.10.4