diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-24 06:19:24 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-24 06:19:24 +0000 |
commit | 8c9e2d18f0c7c69649beb41c328e5ae6c9f42882 (patch) | |
tree | 8357bb953981f028e832dd6b2ddac44fa3e0e65b /libjava/java/lang/StringBuffer.java | |
parent | 910cb4a33b83e7929d104abb545c1d2e7d3df5b5 (diff) | |
download | ppe42-gcc-8c9e2d18f0c7c69649beb41c328e5ae6c9f42882.tar.gz ppe42-gcc-8c9e2d18f0c7c69649beb41c328e5ae6c9f42882.zip |
* java/lang/StringBuffer.java (substring): Don't set `shared' on
small Strings, even if buffer is already shared.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71726 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/StringBuffer.java')
-rw-r--r-- | libjava/java/lang/StringBuffer.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java index a7c2590f39a..0903b40cc5f 100644 --- a/libjava/java/lang/StringBuffer.java +++ b/libjava/java/lang/StringBuffer.java @@ -564,11 +564,12 @@ public final class StringBuffer implements Serializable, CharSequence throw new StringIndexOutOfBoundsException(); if (len == 0) return ""; - // Share unless substring is smaller than 1/4 of the buffer. - if ((len << 2) >= value.length) - shared = true; + // Don't copy unless substring is smaller than 1/4 of the buffer. + boolean share_buffer = ((len << 2) >= value.length); + if (share_buffer) + this.shared = true; // Package constructor avoids an array copy. - return new String(value, beginIndex, len, shared); + return new String(value, beginIndex, len, share_buffer); } /** |