Vector.java (insertElementAt): Unconditionally increment elementCount.
authorTom Tromey <tromey@redhat.com>
Sat, 2 Dec 2000 04:13:52 +0000 (04:13 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Sat, 2 Dec 2000 04:13:52 +0000 (04:13 +0000)
* java/util/Vector.java (insertElementAt): Unconditionally
increment elementCount.
(removeRange): Clear unused slots in vector.

From-SVN: r37944

libjava/ChangeLog
libjava/java/util/Vector.java

index 3a1b79477bf62d20f3d20a059ebd026533a6c64e..1d6972a4d101ad0c7058e447c225a5fbd44ade36 100644 (file)
@@ -1,3 +1,9 @@
+2000-12-01  Tom Tromey  <tromey@redhat.com>
+
+       * java/util/Vector.java (insertElementAt): Unconditionally
+       increment elementCount.
+       (removeRange): Clear unused slots in vector.
+
 2000-12-02  Bryce McKinlay  <bryce@albatross.co.nz>
 
        * java/lang/natMath.cc: Declare fabsf() function.
index 06d2ebefe023c59c81b879dff4be6a0e633f21f4..167859076645de47bf92f981573dfacbce251137 100644 (file)
@@ -440,8 +440,9 @@ public class Vector extends AbstractList
       throw new ArrayIndexOutOfBoundsException(index + " > " + elementCount);
 
     if (elementCount == elementData.length)
-      ensureCapacity(++elementCount);
-    modCount++;
+      ensureCapacity(elementCount + 1);
+    ++modCount;
+    ++elementCount;
     System.arraycopy(elementData, index, elementData, index + 1,
                     elementCount - 1 - index);
     elementData[index] = obj;
@@ -755,7 +756,11 @@ public class Vector extends AbstractList
       {
        System.arraycopy(elementData, toIndex, elementData, fromIndex, 
                         elementCount - toIndex);
+       // Clear unused elements so objects can be collected.
+       int save = elementCount;
        elementCount -= (toIndex - fromIndex);
+       for (int i = elementCount; i < save; ++i)
+         elementData[i] = null;
       }
   }
 }