diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-03-05 21:49:13 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-03-05 21:49:13 -0800 |
commit | eec49923475100e9acdacd097457b2bfc4b763f8 (patch) | |
tree | bab0ff308e8374b9044c95d5e589a7e489d07d56 /src/library | |
parent | 9a00d2bc6fd1b62daa8b52f2b9b92d2aa8487114 (diff) | |
parent | 773f6a8df9ef95852918a706f3f19ebf0431baa8 (diff) | |
download | scala-eec49923475100e9acdacd097457b2bfc4b763f8.tar.gz scala-eec49923475100e9acdacd097457b2bfc4b763f8.tar.bz2 scala-eec49923475100e9acdacd097457b2bfc4b763f8.zip |
Merge 2.10.x into master.
Conflicts:
src/library/scala/collection/mutable/ArrayOps.scala
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/mutable/ArrayOps.scala | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/library/scala/collection/mutable/ArrayOps.scala b/src/library/scala/collection/mutable/ArrayOps.scala index fcbfd27738..4c996bfb88 100644 --- a/src/library/scala/collection/mutable/ArrayOps.scala +++ b/src/library/scala/collection/mutable/ArrayOps.scala @@ -90,18 +90,21 @@ trait ArrayOps[T] extends Any with ArrayLike[T, Array[T]] with CustomParalleliza * @return An array obtained by replacing elements of this arrays with rows the represent. */ def transpose[U](implicit asArray: T => Array[U]): Array[Array[U]] = { - def mkRowBuilder() = Array.newBuilder(ClassTag[U](arrayElementClass(elementClass))) - val bs = asArray(head) map (_ => mkRowBuilder()) - for (xs <- this) { - var i = 0 - for (x <- asArray(xs)) { - bs(i) += x - i += 1 + val bb: Builder[Array[U], Array[Array[U]]] = Array.newBuilder(ClassTag[Array[U]](elementClass)) + if (isEmpty) bb.result() + else { + def mkRowBuilder() = Array.newBuilder(ClassTag[U](arrayElementClass(elementClass))) + val bs = asArray(head) map (_ => mkRowBuilder()) + for (xs <- this) { + var i = 0 + for (x <- asArray(xs)) { + bs(i) += x + i += 1 + } } + for (b <- bs) bb += b.result() + bb.result() } - val bb: Builder[Array[U], Array[Array[U]]] = Array.newBuilder(ClassTag[Array[U]](elementClass)) - for (b <- bs) bb += b.result - bb.result() } def seq = thisCollection |