--- a/jdk/src/java.base/share/classes/java/lang/StringBuilder.java Mon May 11 15:09:22 2015 +0100
+++ b/jdk/src/java.base/share/classes/java/lang/StringBuilder.java Tue Nov 03 09:42:11 2015 +0100
@@ -412,7 +412,8 @@
@HotSpotIntrinsicCandidate
public String toString() {
// Create a copy, don't share the array
- return new String(value, 0, count);
+ return isLatin1() ? StringLatin1.newString(value, 0, count)
+ : StringUTF16.newStringSB(value, 0, count);
}
/**
@@ -430,7 +431,13 @@
throws java.io.IOException {
s.defaultWriteObject();
s.writeInt(count);
- s.writeObject(value);
+ char[] val = new char[capacity()];
+ if (isLatin1()) {
+ StringLatin1.getChars(value, 0, count, val, 0);
+ } else {
+ StringUTF16.getChars(value, 0, count, val, 0);
+ }
+ s.writeObject(val);
}
/**
@@ -441,7 +448,8 @@
throws java.io.IOException, ClassNotFoundException {
s.defaultReadObject();
count = s.readInt();
- value = (char[]) s.readObject();
+ char[] val = (char[]) s.readObject();
+ initBytes(val, 0, val.length);
}
}