String.java (data, [...]): Documented.
authorTom Tromey <tromey@redhat.com>
Mon, 31 Mar 2003 01:03:21 +0000 (01:03 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Mon, 31 Mar 2003 01:03:21 +0000 (01:03 +0000)
* 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

libjava/ChangeLog
libjava/java/lang/String.java

index e74022bbbde4f5d8642485843d4b420f634b0138..84b6b6c270de8357c03a83ea522c4d7b458ad9c3 100644 (file)
@@ -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.
 
index 5011c357a71a61ed225519b029571551659b4ebb..fe00b9100cc24b3b5543a50a5251d2b583e4f811 100644 (file)
@@ -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 &lt; 0 || begin &gt; 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);
   }
 
   /**