summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-01-04 12:08:32 -0800
committerPaul Phillips <paulp@improving.org>2013-01-04 12:08:32 -0800
commit54aca491463f25985d45aeb823d2cddda54b6a44 (patch)
tree064e96da0b40876fdab603e1da478969e3fd579f /src/library
parente112ac94d04be7ee715ebf8724709123b0f3e1f6 (diff)
parent02b2da63409af6a28824cbb74d00d0ec04518c8d (diff)
downloadscala-54aca491463f25985d45aeb823d2cddda54b6a44.tar.gz
scala-54aca491463f25985d45aeb823d2cddda54b6a44.tar.bz2
scala-54aca491463f25985d45aeb823d2cddda54b6a44.zip
Merge pull request #1739 from jedesah/Array_opt
SI-5017 Poor performance of :+ operator on Arrays
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/collection/mutable/ArrayOps.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/library/scala/collection/mutable/ArrayOps.scala b/src/library/scala/collection/mutable/ArrayOps.scala
index bb938a7aeb..6b778b26f5 100644
--- a/src/library/scala/collection/mutable/ArrayOps.scala
+++ b/src/library/scala/collection/mutable/ArrayOps.scala
@@ -52,6 +52,20 @@ trait ArrayOps[T] extends Any with ArrayLike[T, Array[T]] with CustomParalleliza
super.toArray[U]
}
+ def :+[B >: T: scala.reflect.ClassTag](elem: B): Array[B] = {
+ val result = Array.ofDim[B](repr.length + 1)
+ Array.copy(repr, 0, result, 0, repr.length)
+ result(repr.length) = elem
+ result
+ }
+
+ def +:[B >: T: scala.reflect.ClassTag](elem: B): Array[B] = {
+ val result = Array.ofDim[B](repr.length + 1)
+ result(0) = elem
+ Array.copy(repr, 0, result, 1, repr.length)
+ result
+ }
+
override def par = ParArray.handoff(repr)
/** Flattens a two-dimensional array by concatenating all its rows