diff options
author | Ralph Loader <suckfish@ihug.co.nz> | 2003-09-22 08:17:49 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2003-09-22 09:17:49 +0100 |
commit | 88962108fc1e1e59c4d3f4765cae3f28c03a7745 (patch) | |
tree | 3783116e9b94c6400adcc9ebbaeadcf6c20c8887 /libjava/java/lang | |
parent | b5bb72ec41b6411a5c7a1f00855cb6d743ab1b7a (diff) | |
download | gcc-88962108fc1e1e59c4d3f4765cae3f28c03a7745.zip gcc-88962108fc1e1e59c4d3f4765cae3f28c03a7745.tar.gz gcc-88962108fc1e1e59c4d3f4765cae3f28c03a7745.tar.bz2 |
re PR libgcj/12350 (StringBuffer.substring handles shared flag incorrected.)
2003-09-21 Ralph Loader <suckfish@ihug.co.nz>
PR java/12350:
* java/lang/StringBuffer.java (substring): Fix handling of shared
flag.
2003-09-21 Ralph Loader <suckfish@ihug.co.nz>
PR java/12350
* libjava.lang/PR12350.java: New file.
* libjava.lang/PR12350.out: New file.
From-SVN: r71651
Diffstat (limited to 'libjava/java/lang')
-rw-r--r-- | libjava/java/lang/StringBuffer.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java index fac7892..a7c2590 100644 --- a/libjava/java/lang/StringBuffer.java +++ b/libjava/java/lang/StringBuffer.java @@ -564,8 +564,9 @@ public final class StringBuffer implements Serializable, CharSequence throw new StringIndexOutOfBoundsException(); if (len == 0) return ""; - // Share the char[] unless 3/4 empty. - shared = (len << 2) >= value.length; + // Share unless substring is smaller than 1/4 of the buffer. + if ((len << 2) >= value.length) + shared = true; // Package constructor avoids an array copy. return new String(value, beginIndex, len, shared); } |