diff options
author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-10 07:41:59 +0000 |
---|---|---|
committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-10 07:41:59 +0000 |
commit | 26b41a91fda8c86022319afd606bf08ea4fff620 (patch) | |
tree | 86139977ad404212178b3f598a9a0d175d972d5d /libjava/java | |
parent | d4f79fc6e11a2d7ba01277067a6fd67d7aa0bad9 (diff) | |
download | ppe42-gcc-26b41a91fda8c86022319afd606bf08ea4fff620.tar.gz ppe42-gcc-26b41a91fda8c86022319afd606bf08ea4fff620.zip |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66656 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/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 e2f8d5e130a..5499707d9fa 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 ()); } /** |