diff options
author | Tom Tromey <tromey@redhat.com> | 2003-03-31 01:03:21 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-03-31 01:03:21 +0000 |
commit | 6a76da08a3c024fe0ff110a9a5dc2cc0ec56e6a6 (patch) | |
tree | 614aa9cc5d316d4c5d330c01ada4e1de16a5607d | |
parent | bd3f840c72b4fe30f2bb2c460bc409d38ffff423 (diff) | |
download | gcc-6a76da08a3c024fe0ff110a9a5dc2cc0ec56e6a6.zip gcc-6a76da08a3c024fe0ff110a9a5dc2cc0ec56e6a6.tar.gz gcc-6a76da08a3c024fe0ff110a9a5dc2cc0ec56e6a6.tar.bz2 |
String.java (data, [...]): Documented.
* java/lang/String.java (data, boffset, count): Documented.
(String(byte[],String)): Reformatted.
(String(byte[])): Likewise.
(lastIndexOf(int)): Likewise.
(lastIndexOf(String)): Likewise.
(substring(int)): Renamed argument to match Classpath.
(String(StringBuffer)): Don't share buffer if it is nearly empty.
From-SVN: r65070
-rw-r--r-- | libjava/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/java/lang/String.java | 39 |
2 files changed, 38 insertions, 9 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index e74022b..84b6b6c 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,13 @@ 2003-03-30 Tom Tromey <tromey@redhat.com> + * java/lang/String.java (data, boffset, count): Documented. + (String(byte[],String)): Reformatted. + (String(byte[])): Likewise. + (lastIndexOf(int)): Likewise. + (lastIndexOf(String)): Likewise. + (substring(int)): Renamed argument to match Classpath. + (String(StringBuffer)): Don't share buffer if it is nearly empty. + * java/lang/String.java: Miscellaneous minor formatting changes to match Classpath more closely. diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java index 5011c35..fe00b91 100644 --- a/libjava/java/lang/String.java +++ b/libjava/java/lang/String.java @@ -84,8 +84,26 @@ public final class String implements Serializable, Comparable, CharSequence */ private static final long serialVersionUID = -6849794470754667710L; + /** + * This is the object that holds the characters that make up the + * String. It might be a char[], or it could be String. It could + * even be `this'. The actual characters can't be located using + * pure Java code. + * @see #boffset + */ private Object data; - private int boffset; // Note this is a byte offset - don't use in Java code! + + /** + * This is a <emph>byte</emph> offset of the actual characters from + * the start of the character-holding object. Don't use this field + * in Java code. + */ + private int boffset; + + /** + * Holds the number of characters in value. Package visible for use + * by trusted code. + */ int count; /** @@ -298,7 +316,7 @@ public final class String implements Serializable, Comparable, CharSequence public String(byte[] data, String encoding) throws UnsupportedEncodingException { - this (data, 0, data.length, encoding); + this(data, 0, data.length, encoding); } /** @@ -357,7 +375,7 @@ public final class String implements Serializable, Comparable, CharSequence */ public String(byte[] data) { - this (data, 0, data.length); + this(data, 0, data.length); } /** @@ -371,8 +389,11 @@ public final class String implements Serializable, Comparable, CharSequence { synchronized (buffer) { - buffer.shared = true; - init (buffer.value, 0, buffer.count, true); + // Share unless buffer is 3/4 empty. + boolean should_copy = ((buffer.count << 2) < buffer.value.length); + if (! should_copy) + buffer.shared = true; + init (buffer.value, 0, buffer.count, ! should_copy); } } @@ -721,7 +742,7 @@ public final class String implements Serializable, Comparable, CharSequence */ public int lastIndexOf(int ch) { - return lastIndexOf (ch, count - 1); + return lastIndexOf(ch, count - 1); } /** @@ -770,7 +791,7 @@ public final class String implements Serializable, Comparable, CharSequence */ public int lastIndexOf(String str) { - return lastIndexOf (str, count - str.count); + return lastIndexOf(str, count - str.count); } /** @@ -806,9 +827,9 @@ public final class String implements Serializable, Comparable, CharSequence * @throws IndexOutOfBoundsException if begin < 0 || begin > length() * (while unspecified, this is a StringIndexOutOfBoundsException) */ - public String substring(int beginIndex) + public String substring(int begin) { - return substring (beginIndex, count); + return substring(begin, count); } /** |