summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-07-16 18:09:44 +0000
committerPaul Phillips <paulp@improving.org>2009-07-16 18:09:44 +0000
commit15140852988c9ada16dae2f1e572da9e63689631 (patch)
tree4f48991d8223a8e412a0b898cd21e04a5c8ac194 /src
parent097993aea447cc57c4f5701c6a2e97d6953597e9 (diff)
downloadscala-15140852988c9ada16dae2f1e572da9e63689631.tar.gz
scala-15140852988c9ada16dae2f1e572da9e63689631.tar.bz2
scala-15140852988c9ada16dae2f1e572da9e63689631.zip
Altered some invocations of Array.copy to use c...
Altered some invocations of Array.copy to use compat.Platform.arraycopy instead, because profiling indicated a frightening amount of time being spent in java.lang.Class.isArray (mostly stemming from ensureCapacity in StringBuilder.)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/compiler/scala/tools/nsc/ast/parser/Scanners.scala2
-rwxr-xr-xsrc/compiler/scala/tools/nsc/symtab/BaseTypeSeqs.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Names.scala4
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala2
-rw-r--r--src/library/scala/collection/mutable/StringBuilder.scala27
5 files changed, 19 insertions, 18 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
index e29c055911..aa7d104ab4 100755
--- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
@@ -865,7 +865,7 @@ trait Scanners {
protected def enterKeyword(n: Name, tokenId: Int) {
while (tokenId >= keyName.length) {
val newTokName = new Array[Name](keyName.length * 2)
- Array.copy(keyName, 0, newTokName, 0, newTokName.length)
+ compat.Platform.arraycopy(keyName, 0, newTokName, 0, newTokName.length)
keyName = newTokName
}
keyName(tokenId) = n
diff --git a/src/compiler/scala/tools/nsc/symtab/BaseTypeSeqs.scala b/src/compiler/scala/tools/nsc/symtab/BaseTypeSeqs.scala
index 0516a49fff..aa86d64222 100755
--- a/src/compiler/scala/tools/nsc/symtab/BaseTypeSeqs.scala
+++ b/src/compiler/scala/tools/nsc/symtab/BaseTypeSeqs.scala
@@ -91,7 +91,7 @@ trait BaseTypeSeqs {
private def copy(head: Type, offset: Int): BaseTypeSeq = {
val arr = new Array[Type](elems.length + offset)
- Array.copy(elems, 0, arr, offset, elems.length)
+ compat.Platform.arraycopy(elems, 0, arr, offset, elems.length)
arr(0) = head
new BaseTypeSeq(parents, arr)
}
diff --git a/src/compiler/scala/tools/nsc/symtab/Names.scala b/src/compiler/scala/tools/nsc/symtab/Names.scala
index 70612c2a85..c0fc5035c9 100644
--- a/src/compiler/scala/tools/nsc/symtab/Names.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Names.scala
@@ -74,7 +74,7 @@ class Names {
while (i < len) {
if (nc + i == chrs.length) {
val newchrs = new Array[Char](chrs.length * 2)
- Array.copy(chrs, 0, newchrs, 0, chrs.length)
+ compat.Platform.arraycopy(chrs, 0, newchrs, 0, chrs.length)
chrs = newchrs
}
chrs(nc + i) = cs(offset + i)
@@ -208,7 +208,7 @@ class Names {
* @param offset ...
*/
final def copyChars(cs: Array[Char], offset: Int) =
- Array.copy(chrs, index, cs, offset, len)
+ compat.Platform.arraycopy(chrs, index, cs, offset, len)
/** return the ascii representation of this name
*/
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
index d8e645c52e..4a0b21a914 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
@@ -109,7 +109,7 @@ abstract class Pickler extends SubComponent {
case None =>
if (ep == entries.length) {
val entries1 = new Array[AnyRef](ep * 2)
- Array.copy(entries, 0, entries1, 0, ep)
+ System.arraycopy(entries, 0, entries1, 0, ep)
entries = entries1
}
entries(ep) = entry
diff --git a/src/library/scala/collection/mutable/StringBuilder.scala b/src/library/scala/collection/mutable/StringBuilder.scala
index 245e867e9f..6afd4edf8d 100644
--- a/src/library/scala/collection/mutable/StringBuilder.scala
+++ b/src/library/scala/collection/mutable/StringBuilder.scala
@@ -13,6 +13,7 @@ package scala.collection.mutable
import collection.generic._
import scala.runtime.RichString
+import compat.Platform.arraycopy
/** <p>
* A mutable sequence of characters. This class provides an API compatible
@@ -114,7 +115,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
while (n > newsize)
newsize = newsize * 2
val newar = new Array[Char](newsize)
- Array.copy(array, 0, newar, 0, count)
+ arraycopy(array, 0, newar, 0, count)
array = newar
}
}
@@ -156,7 +157,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
def deleteCharAt(index: Int): StringBuilder = {
if (index < 0 || index >= count)
throw new StringIndexOutOfBoundsException(index)
- compat.Platform.arraycopy(array, index + 1, array, index, count - index - 1)
+ arraycopy(array, index + 1, array, index, count - index - 1)
count -= 1
this
}
@@ -271,7 +272,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
else {
val len = sb.length
ensureCapacity(count + len)
- compat.Platform.arraycopy(sb.toArray, 0, array, count, len)
+ arraycopy(sb.toArray, 0, array, count, len)
count += len
this
}
@@ -336,7 +337,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
*/
def appendAll(x: Array[Char], offset: Int, len: Int): StringBuilder = {
ensureCapacity(count + len)
- compat.Platform.arraycopy(x, offset, array, count, len)
+ arraycopy(x, offset, array, count, len)
count += len
this
}
@@ -403,7 +404,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
val end0 = if (end > count) count else end
val len = end0 - start
if (len > 0) {
- compat.Platform.arraycopy(array, start + len, array, start, count - end0)
+ arraycopy(array, start + len, array, start, count - end0)
count -= len
}
this
@@ -433,7 +434,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
val newCount = count + len - (end0 - start)
ensureCapacity(newCount)
- compat.Platform.arraycopy(array, end, array, start + len, count - end)
+ arraycopy(array, end, array, start + len, count - end)
str.getChars(0, len, array, start)
count = newCount
this
@@ -467,8 +468,8 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
"offset " + offset + ", len " + len +
", str.length " + str.length)
ensureCapacity(count + len)
- compat.Platform.arraycopy(array, index, array, index + len, count - index)
- compat.Platform.arraycopy(str, offset, array, index, len)
+ arraycopy(array, index, array, index + len, count - index)
+ arraycopy(str, offset, array, index, len)
count += len
this
}
@@ -515,7 +516,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
val str = if (x == null) "null" else x
val len = str.length
ensureCapacity(count + len)
- compat.Platform.arraycopy(array, at, array, at + len, count - at)
+ arraycopy(array, at, array, at + len, count - at)
str.getChars(0, len, array, at)
count += len
this
@@ -550,8 +551,8 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
throw new StringIndexOutOfBoundsException(at)
val len = x.length
ensureCapacity(count + len)
- compat.Platform.arraycopy(array, at, array, at + len, count - at)
- compat.Platform.arraycopy(x, 0, array, at, len)
+ arraycopy(array, at, array, at + len, count - at)
+ arraycopy(x, 0, array, at, len)
count += len
this
}
@@ -610,7 +611,7 @@ final class StringBuilder(initCapacity: Int, private val initValue: String)
if (at < 0 || at > count)
throw new StringIndexOutOfBoundsException(at)
ensureCapacity(count + 1)
- compat.Platform.arraycopy(array, at, array, at + 1, count - at)
+ arraycopy(array, at, array, at + 1, count - at)
array(at) = x
count += 1
this
@@ -868,7 +869,7 @@ object StringBuilder {
// method <code>java.util.Arrays.copyOf</code> exists since 1.6
private def copyOf(src: Array[Char], newLength: Int): Array[Char] = {
val dest = new Array[Char](newLength)
- compat.Platform.arraycopy(src, 0, dest, 0, Math.min(src.length, newLength))
+ arraycopy(src, 0, dest, 0, Math.min(src.length, newLength))
dest
}