aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/nio/CharBuffer.java
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-05-10 07:41:59 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-05-10 07:41:59 +0000
commitc363e02d01469e52bd72efe3c1a1407b4d51de68 (patch)
tree86139977ad404212178b3f598a9a0d175d972d5d /libjava/java/nio/CharBuffer.java
parent2d133a9fd0ad04a73cac6183f894b3fdd8e3104b (diff)
downloadgcc-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.java11
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 ());
}
/**