From 92b13e438c93227fc20aaec01b54d6b35410c821 Mon Sep 17 00:00:00 2001 From: mkoch Date: Sun, 30 May 2004 13:38:20 +0000 Subject: 2004-05-30 Michael Koch * 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 --- libjava/java/nio/Buffer.java | 4 +-- libjava/java/nio/CharBuffer.java | 55 +++++++++++++++++++++++++++------------- 2 files changed, 39 insertions(+), 20 deletions(-) (limited to 'libjava/java') 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 char array into a CharBuffer * 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 CharBuffer 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 CharBuffer object. + * + * @param seq the sequence to wrap + * + * @return a new CharBuffer 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 CharBuffer 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 CharBuffer 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 char array into a CharBuffer * object. + * + * @param array the array to wrap + * + * @return a new CharBuffer 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); } /** -- cgit v1.2.3