@@ -157,8 +157,8 @@ int compareTo(AbstractStringBuilder another) {
157
157
return 0 ;
158
158
}
159
159
160
- byte val1 [] = value ;
161
- byte val2 [] = another .value ;
160
+ byte [] val1 = value ;
161
+ byte [] val2 = another .value ;
162
162
int count1 = this .count ;
163
163
int count2 = another .count ;
164
164
@@ -734,7 +734,7 @@ public AbstractStringBuilder append(char[] str) {
734
734
* if {@code offset < 0} or {@code len < 0}
735
735
* or {@code offset+len > str.length}
736
736
*/
737
- public AbstractStringBuilder append (char str [] , int offset , int len ) {
737
+ public AbstractStringBuilder append (char [] str , int offset , int len ) {
738
738
int end = offset + len ;
739
739
checkRange (offset , end , str .length );
740
740
ensureCapacityInternal (count + len );
@@ -1238,9 +1238,6 @@ public AbstractStringBuilder insert(int dstOffset, CharSequence s) {
1238
1238
if (s == null ) {
1239
1239
s = "null" ;
1240
1240
}
1241
- if (s instanceof String ) {
1242
- return this .insert (dstOffset , (String )s );
1243
- }
1244
1241
return this .insert (dstOffset , s , 0 , s .length ());
1245
1242
}
1246
1243
@@ -1300,7 +1297,11 @@ public AbstractStringBuilder insert(int dstOffset, CharSequence s,
1300
1297
ensureCapacityInternal (count + len );
1301
1298
shift (dstOffset , len );
1302
1299
count += len ;
1303
- putCharsAt (dstOffset , s , start , end );
1300
+ if (s instanceof String ) {
1301
+ putStringAt (dstOffset , (String ) s , start , end );
1302
+ } else {
1303
+ putCharsAt (dstOffset , s , start , end );
1304
+ }
1304
1305
return this ;
1305
1306
}
1306
1307
@@ -1558,9 +1559,8 @@ public int lastIndexOf(String str, int fromIndex) {
1558
1559
public AbstractStringBuilder reverse () {
1559
1560
byte [] val = this .value ;
1560
1561
int count = this .count ;
1561
- int coder = this .coder ;
1562
1562
int n = count - 1 ;
1563
- if (COMPACT_STRINGS && coder == LATIN1 ) {
1563
+ if (isLatin1 () ) {
1564
1564
for (int j = (n -1 ) >> 1 ; j >= 0 ; j --) {
1565
1565
int k = n - j ;
1566
1566
byte cj = val [j ];
@@ -1648,7 +1648,7 @@ final byte[] getValue() {
1648
1648
* @param dstBegin the char index, not offset of byte[]
1649
1649
* @param coder the coder of dst[]
1650
1650
*/
1651
- void getBytes (byte dst [] , int dstBegin , byte coder ) {
1651
+ void getBytes (byte [] dst , int dstBegin , byte coder ) {
1652
1652
if (this .coder == coder ) {
1653
1653
System .arraycopy (value , 0 , dst , dstBegin << coder , count << coder );
1654
1654
} else { // this.coder == LATIN && coder == UTF16
@@ -1713,11 +1713,15 @@ private final void putCharsAt(int index, CharSequence s, int off, int end) {
1713
1713
}
1714
1714
}
1715
1715
1716
- private final void putStringAt (int index , String str ) {
1716
+ private void putStringAt (int index , String str , int off , int end ) {
1717
1717
if (getCoder () != str .coder ()) {
1718
1718
inflate ();
1719
1719
}
1720
- str .getBytes (value , index , coder );
1720
+ str .getBytes (value , off , index , coder , end );
1721
+ }
1722
+
1723
+ private void putStringAt (int index , String str ) {
1724
+ putStringAt (index , str , 0 , str .length ());
1721
1725
}
1722
1726
1723
1727
private final void appendChars (char [] s , int off , int end ) {
0 commit comments