From c363e02d01469e52bd72efe3c1a1407b4d51de68 Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Sat, 10 May 2003 07:41:59 +0000 Subject: 2003-05-10 Michael Koch * 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 --- libjava/java/nio/CharBuffer.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'libjava/java') 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 ()); } /** -- cgit v1.1