8198955: String#repeat loop optimization

Reviewed-by: rriggs, redestad, igerasim
This commit is contained in:
Jim Laskey 2018-03-02 18:10:57 -04:00
parent c43cebb5cf
commit 522a9d15fd

View File

@ -3005,9 +3005,8 @@ public final class String
final byte[] multiple = new byte[limit]; final byte[] multiple = new byte[limit];
System.arraycopy(value, 0, multiple, 0, len); System.arraycopy(value, 0, multiple, 0, len);
int copied = len; int copied = len;
for (int next = copied << 1; next < limit && 0 < next; next = next << 1) { for (; copied < limit - copied; copied <<= 1) {
System.arraycopy(multiple, 0, multiple, copied, copied); System.arraycopy(multiple, 0, multiple, copied, copied);
copied = next;
} }
System.arraycopy(multiple, 0, multiple, copied, limit - copied); System.arraycopy(multiple, 0, multiple, copied, limit - copied);
return new String(multiple, coder); return new String(multiple, coder);