Skip to content

Commit d71a682

Browse files
committed
String multiplification fix
1 parent 2c7bbac commit d71a682

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

library/src/scala/collection/immutable/StringLike.scala

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import mutable.Builder
1818
import scala.util.matching.Regex
1919
import scala.math.ScalaNumber
2020
import scala.reflect.ClassTag
21+
import java.lang.{StringBuilder => JStringBuilder}
2122

2223
/** A companion object for the `StringLike` containing some constants.
2324
* @since 2.8
@@ -69,10 +70,15 @@ self =>
6970

7071
/** Return the current string concatenated `n` times.
7172
*/
72-
def * (n: Int): String = {
73-
val buf = new StringBuilder
74-
for (i <- 0 until n) buf append toString
75-
buf.toString
73+
def *(n: Int): String = {
74+
val s0 = toString
75+
var ci = 0 max n
76+
val sb = new JStringBuilder(s0.length * ci)
77+
while (ci > 0) {
78+
sb.append(s0)
79+
ci -= 1
80+
}
81+
sb.toString
7682
}
7783

7884
override def compare(other: String) = toString compareTo other

0 commit comments

Comments
 (0)