summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/ArrayOps.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-03-05 21:49:13 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-03-05 21:49:13 -0800
commiteec49923475100e9acdacd097457b2bfc4b763f8 (patch)
treebab0ff308e8374b9044c95d5e589a7e489d07d56 /src/library/scala/collection/mutable/ArrayOps.scala
parent9a00d2bc6fd1b62daa8b52f2b9b92d2aa8487114 (diff)
parent773f6a8df9ef95852918a706f3f19ebf0431baa8 (diff)
downloadscala-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/scala/collection/mutable/ArrayOps.scala')
-rw-r--r--src/library/scala/collection/mutable/ArrayOps.scala23
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