From: adam Date: Mon, 19 Dec 2005 06:52:06 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~516 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=7e98c8cefa1a3d5501c7ab513ba37d4aefa291e6 checkpoint darcs-hash:20051219065206-5007d-2aa8ff25730450bcdac5560eae05d333d315dc0c.gz --- 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