summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-10 07:41:59 +0000
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-10 07:41:59 +0000
commit26b41a91fda8c86022319afd606bf08ea4fff620 (patch)
tree86139977ad404212178b3f598a9a0d175d972d5d /libjava/java
parentd4f79fc6e11a2d7ba01277067a6fd67d7aa0bad9 (diff)
downloadppe42-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.java11
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 ());
}
/**
OpenPOWER on IntegriCloud