aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/nio/CharBuffer.java
diff options
context:
space:
mode:
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 ());
}
/**