From eebb8695e22cd50f510a132d21c8b47386f86a4c Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 6 Jun 2010 07:46:43 +0000 Subject: Overwrote copyToArray for efficiency. --- src/library/scala/collection/mutable/ArrayOps.scala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/library/scala/collection/mutable/ArrayOps.scala b/src/library/scala/collection/mutable/ArrayOps.scala index d7072c0661..00e8697b53 100644 --- a/src/library/scala/collection/mutable/ArrayOps.scala +++ b/src/library/scala/collection/mutable/ArrayOps.scala @@ -10,6 +10,7 @@ package scala.collection package mutable +import compat.Platform.arraycopy import scala.reflect.ClassManifest @@ -38,6 +39,13 @@ abstract class ArrayOps[T] extends ArrayLike[T, Array[T]] { ClassManifest.fromClass( repr.getClass.getComponentType.getComponentType.asInstanceOf[Predef.Class[U]])) + override def copyToArray[U >: T](xs: Array[U], start: Int, len: Int) { + var l = len + if (repr.length < l) l = repr.length + if (xs.length - start < l) l = xs.length - start max 0 + Array.copy(repr, 0, xs, start, l) + } + override def toArray[U >: T : ClassManifest]: Array[U] = if (implicitly[ClassManifest[U]].erasure eq repr.getClass.getComponentType) repr.asInstanceOf[Array[U]] -- cgit v1.2.3