diff options
author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-30 13:38:20 +0000 |
---|---|---|
committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-30 13:38:20 +0000 |
commit | 92b13e438c93227fc20aaec01b54d6b35410c821 (patch) | |
tree | 183af12f5dc6b5b3c9bddf400175e36ec1dd1274 /libjava/java/nio | |
parent | db8cab804f7dbc8250d60e2caeebcb05b1b57713 (diff) | |
download | gcc-92b13e438c93227fc20aaec01b54d6b35410c821.tar.gz |
2004-05-30 Michael Koch <konqueror@gmx.de>
* java/nio/Buffer.java
(limit): Fixed off by one error.
* java/nio/CharBuffer.java
(wrap): Fixed arguments, added javadocs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82448 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/nio')
-rw-r--r-- | libjava/java/nio/Buffer.java | 4 | ||||
-rw-r--r-- | libjava/java/nio/CharBuffer.java | 55 |
2 files changed, 39 insertions, 20 deletions
diff --git a/libjava/java/nio/Buffer.java b/libjava/java/nio/Buffer.java index c24259f71ec..c7f01b67116 100644 --- a/libjava/java/nio/Buffer.java +++ b/libjava/java/nio/Buffer.java @@ -148,11 +148,11 @@ public abstract class Buffer if ((newLimit < 0) || (newLimit > cap)) throw new IllegalArgumentException (); - if (newLimit <= mark) + if (newLimit < mark) mark = -1; if (pos > newLimit) - pos = newLimit - 1; + pos = newLimit; limit = newLimit; return this; diff --git a/libjava/java/nio/CharBuffer.java b/libjava/java/nio/CharBuffer.java index 416ca834988..5116c254811 100644 --- a/libjava/java/nio/CharBuffer.java +++ b/libjava/java/nio/CharBuffer.java @@ -65,56 +65,75 @@ public abstract class CharBuffer extends Buffer * Wraps a <code>char</code> array into a <code>CharBuffer</code> * object. * + * @param array the array to wrap + * @param offset the offset of the region in the array to wrap + * @param length the length of the region in the array to wrap + * + * @return a new <code>CharBuffer</code> object + * * @exception IndexOutOfBoundsException If the preconditions on the offset * and length parameters do not hold */ - final public static CharBuffer wrap (char[] array, int offset, int length) + final public static CharBuffer wrap(char[] array, int offset, int length) { - return new CharBufferImpl (array, 0, array.length, offset + length, offset, -1, false); + return new CharBufferImpl(array, 0, array.length, offset + length, offset, -1, false); } /** * Wraps a character sequence into a <code>CharBuffer</code> object. + * + * @param seq the sequence to wrap + * + * @return a new <code>CharBuffer</code> object */ - final public static CharBuffer wrap (CharSequence a) + final public static CharBuffer wrap(CharSequence seq) { - return wrap (a, 0, a.length ()); + return wrap(seq, 0, seq.length()); } /** * Wraps a character sequence into a <code>CharBuffer</code> object. * + * @param seq the sequence to wrap + * @param start the index of the first character to wrap + * @param end the index of the first character not to wrap + * + * @return a new <code>CharBuffer</code> object + * * @exception IndexOutOfBoundsException If the preconditions on the offset * and length parameters do not hold */ - final public static CharBuffer wrap (CharSequence a, int offset, int length) + final public static CharBuffer wrap(CharSequence seq, int start, int end) { // FIXME: implement better handling of java.lang.String. // Probably share data with String via reflection. - if ((offset < 0) - || (offset > a.length ()) - || (length < 0) - || (length > (a.length () - offset))) - throw new IndexOutOfBoundsException (); + if ((start < 0) + || (start > seq.length()) + || (end < start) + || (end > (seq.length() - start))) + throw new IndexOutOfBoundsException(); - char [] buffer = new char [a.length ()]; + int len = end - start; + char[] buffer = new char[len]; - for (int i = offset; i < length; i++) - { - buffer [i] = a.charAt (i); - } + for (int i = 0; i < len; i++) + buffer[i] = seq.charAt(i + start); - return wrap (buffer, offset, length).asReadOnlyBuffer (); + return wrap(buffer, 0, len).asReadOnlyBuffer(); } /** * Wraps a <code>char</code> array into a <code>CharBuffer</code> * object. + * + * @param array the array to wrap + * + * @return a new <code>CharBuffer</code> object */ - final public static CharBuffer wrap (char[] array) + final public static CharBuffer wrap(char[] array) { - return wrap (array, 0, array.length); + return wrap(array, 0, array.length); } /** |