From 7bef6454f792be2f2a036d7bb32e541f67279a15 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 28 Jul 2015 20:12:55 -0700 Subject: Avoid needless Vec instantiation This avoids some cases where cloneType would need to be defined. --- src/main/scala/Chisel/Core.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/scala/Chisel/Core.scala b/src/main/scala/Chisel/Core.scala index 90f6b07a..c28f9f95 100644 --- a/src/main/scala/Chisel/Core.scala +++ b/src/main/scala/Chisel/Core.scala @@ -465,16 +465,17 @@ class Vec[T <: Data](elts: Iterable[T], dirArg: Direction = NO_DIR) extends Aggr private val self = elts.toIndexedSeq private lazy val elt0 = elts.head - override def collectElts = { + override def collectElts: Unit = for ((e, i) <- self zipWithIndex) setIndexForId(cid, e.cid, i) - } def <> (that: Iterable[T]): Unit = - this <> Vec(that).asInstanceOf[Data] + for ((a, b) <- this zip that) + a <> b def := (that: Iterable[T]): Unit = - this := Vec(that).asInstanceOf[Data] + for ((a, b) <- this zip that) + a := b override def isFlip = isFlipVar ^ (!elts.isEmpty && elt0.isFlip) -- cgit v1.2.3