aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@mckinlay.net.nz>2003-09-24 06:19:24 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2003-09-24 07:19:24 +0100
commitafa1ee5e6f7e89794d377dc804801367af84dfdd (patch)
tree8357bb953981f028e832dd6b2ddac44fa3e0e65b /libjava/java/lang
parent4112c7bde0da94a714e30f0411ff79d29fbc487a (diff)
downloadgcc-afa1ee5e6f7e89794d377dc804801367af84dfdd.zip
gcc-afa1ee5e6f7e89794d377dc804801367af84dfdd.tar.gz
gcc-afa1ee5e6f7e89794d377dc804801367af84dfdd.tar.bz2
StringBuffer.java (substring): Don't set `shared' on small Strings, even if buffer is already shared.
* java/lang/StringBuffer.java (substring): Don't set `shared' on small Strings, even if buffer is already shared. From-SVN: r71726
Diffstat (limited to 'libjava/java/lang')
-rw-r--r--libjava/java/lang/StringBuffer.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java
index a7c2590..0903b40 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);
}
/**