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) {
         ...

Please remove and replace inline by size - toIndex:
 621         int numMoved = size - toIndex;


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


Reply via email to