diff options
author | Michael Koch <konqueror@gmx.de> | 2003-05-10 07:41:59 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-05-10 07:41:59 +0000 |
commit | c363e02d01469e52bd72efe3c1a1407b4d51de68 (patch) | |
tree | 86139977ad404212178b3f598a9a0d175d972d5d /libjava/java/nio/CharBuffer.java | |
parent | 2d133a9fd0ad04a73cac6183f894b3fdd8e3104b (diff) | |
download | gcc-c363e02d01469e52bd72efe3c1a1407b4d51de68.zip gcc-c363e02d01469e52bd72efe3c1a1407b4d51de68.tar.gz gcc-c363e02d01469e52bd72efe3c1a1407b4d51de68.tar.bz2 |
2003-05-10 Michael Koch <konqueror@gmx.de>
* java/nio/CharBuffer.java
(put): Fixed precondtion check.
(toString): Make it work without backing array.
(put): Skip one level of method calling.
From-SVN: r66656
Diffstat (limited to 'libjava/java/nio/CharBuffer.java')
-rw-r--r-- | libjava/java/nio/CharBuffer.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libjava/java/nio/CharBuffer.java b/libjava/java/nio/CharBuffer.java index e2f8d5e..5499707d 100644 --- a/libjava/java/nio/CharBuffer.java +++ b/libjava/java/nio/CharBuffer.java @@ -177,7 +177,7 @@ public abstract class CharBuffer extends Buffer if (offset < 0 || offset >= src.length || length < 0 - || length >= (src.length - offset)) + || length > (src.length - offset)) throw new IndexOutOfBoundsException (); // Put nothing into this buffer when not enough space left. @@ -361,7 +361,12 @@ public abstract class CharBuffer extends Buffer */ public String toString () { - return new String (array (), position (), length ()); + if (hasArray ()) + return new String (array (), position (), length ()); + + char[] buf = new char [length ()]; + get (buf); + return new String (buf); } /** @@ -409,7 +414,7 @@ public abstract class CharBuffer extends Buffer */ public final CharBuffer put (String str) { - return put (str, 0, str.length ()); + return put (str.toCharArray (), 0, str.length ()); } /** |