RFR [8014066] Mistake in documentation of ArrayList#removeRange (original) (raw)
Ivan Gerasimov ivan.gerasimov at oracle.com
Wed Mar 19 08:19:43 UTC 2014
- Previous message: RFR [8014066] Mistake in documentation of ArrayList#removeRange
- Next message: RFR [8014066] Mistake in documentation of ArrayList#removeRange
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thank you Ulf!
On 19.03.2014 2:12, Ulf Zibis wrote:
Am 18.03.2014 19:28, schrieb Ivan Gerasimov:
Assuming this last iteration is OK, should the next step be a CCC request? Do you mean? : /* * ... + * It is assumed that fromIndex <= toIndex, otherwise the behaviour of this method is undefined. * ... - * toIndex < fromIndex}) * ... */ protected void removeRange(int fromIndex, int toIndex) { ...
The (fromIndex > toIndex) condition is checked now, so the behavior of the method is defined - it throws an exception.
Please remove and replace inline by size - toIndex: 621 int numMoved = size - toIndex;
It is done this way throughout the class. I don't think it has to be changed in this particular place.
Improving modCound handling can be done with a different RFE I guess, as it doesn't connected to the rest of the fix.
Sincerely yours, Ivan
About modCount: Wouldn't it be more correct to code? : 616 if (fromIndex > toIndex) { 617 throw new IndexOutOfBoundsException( 618 outOfBoundsMsg(fromIndex, toIndex)); 619 } 620 try { 621 modCount++; 622 System.arraycopy(elementData, toIndex, elementData, fromIndex, 623 size - toIndex); 624 } catch (IndexOutOfBoundsException ioobe) { 625 modCount--; 626 throw ioobe; 627 } Of even better : 000 private int[] modCount = { 0 }; ... 616 if (fromIndex > toIndex) { 617 throw new IndexOutOfBoundsException( 618 outOfBoundsMsg(fromIndex, toIndex)); 619 } 620 System.arraycopy(elementData, toIndex, elementData, fromIndex, 621 size - toIndex, modCount); Or : 000 public class ArrayList ... implements ModCounter { 001 private int modCount = 0; 001 void incModCount() { 001 modCount++; 004 } ... 616 if (fromIndex > toIndex) { 617 throw new IndexOutOfBoundsException( 618 outOfBoundsMsg(fromIndex, toIndex)); 619 } 620 System.arraycopy(elementData, toIndex, elementData, fromIndex, 621 size - toIndex, this); -Ulf
- Previous message: RFR [8014066] Mistake in documentation of ArrayList#removeRange
- Next message: RFR [8014066] Mistake in documentation of ArrayList#removeRange
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]