From 7e98c8cefa1a3d5501c7ab513ba37d4aefa291e6 Mon Sep 17 00:00:00 2001 From: adam Date: Mon, 19 Dec 2005 01:52:06 -0500 Subject: [PATCH] checkpoint darcs-hash:20051219065206-5007d-2aa8ff25730450bcdac5560eae05d333d315dc0c.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index bc171da..13da0ca 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -152,16 +152,25 @@ public class MetaGrammar extends ReflectiveWalker { public PreSequence sparse(Object e) { Object[] ret; - if (o.length <= 1) ret = o; - else { + boolean[] drops; + if (o.length <= 1) { + ret = o; + drops = new boolean[this.drops.length]; + System.arraycopy(this.drops, 0, drops, 0, this.drops.length); + } else { ret = new Object[o.length * 2 - 1]; + drops = new boolean[o.length * 2 - 1]; for(int i=0; i set = new HashSet(); Element[] o2 = o==null ? new Element[0] : new Element[o.length]; int nonDrop = 0; - boolean[] drops = null; if (o != null) { - drops = new boolean[o.length]; int j = 0; for(int i=0; i