From 099a426dd6a176e704f47ed665669bf093a6d3f6 Mon Sep 17 00:00:00 2001 From: Jeroen ter Voorde Date: Wed, 14 May 2014 22:26:26 +0200 Subject: SI-8589 Performance improvement for ArrayCharSequence.toString --- src/library/scala/runtime/SeqCharSequence.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/library/scala/runtime/SeqCharSequence.scala b/src/library/scala/runtime/SeqCharSequence.scala index d2084a6598..a7765994ec 100644 --- a/src/library/scala/runtime/SeqCharSequence.scala +++ b/src/library/scala/runtime/SeqCharSequence.scala @@ -41,5 +41,10 @@ final class ArrayCharSequence(val xs: Array[Char], start: Int, end: Int) extends new ArrayCharSequence(xs, start1, start1 + newlen) } } - override def toString = xs drop start take length mkString "" + override def toString = { + val start = math.max(this.start, 0) + val end = math.min(xs.length, start + length) + + if (start >= end) "" else new String(xs, start, end - start) + } } -- cgit v1.2.3