From 1b2545bcf251668d695e8cbf9b9acfd4507eef61 Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Sun, 30 May 2004 13:38:20 +0000 Subject: [PATCH] 2004-05-30 Michael Koch * java/nio/Buffer.java (limit): Fixed off by one error. * java/nio/CharBuffer.java (wrap): Fixed arguments, added javadocs. From-SVN: r82448 --- libjava/ChangeLog | 7 ++++ libjava/java/nio/Buffer.java | 4 +-- libjava/java/nio/CharBuffer.java | 55 +++++++++++++++++++++----------- 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index be6629e8582..b567876a63a 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,10 @@ +2004-05-30 Michael Koch + + * java/nio/Buffer.java + (limit): Fixed off by one error. + * java/nio/CharBuffer.java + (wrap): Fixed arguments, added javadocs. + 2004-05-30 Michael Koch * gnu/java/beans/BeanInfoEmbryo.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); } /** -- 2.30.2