Author: bodewig
Date: Wed Feb 17 05:35:49 2010
New Revision: 910832

URL: http://svn.apache.org/viewvc?rev=910832&view=rev
Log:
a few more O(n) lookups where O(1) would be possible - optional tasks not 
checked, yet

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Ant.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/VectorSet.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Ant.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Ant.java?rev=910832&r1=910831&r2=910832&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Ant.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Ant.java Wed Feb 17 
05:35:49 2010
@@ -41,6 +41,7 @@
 import org.apache.tools.ant.Main;
 import org.apache.tools.ant.types.PropertySet;
 import org.apache.tools.ant.util.FileUtils;
+import org.apache.tools.ant.util.VectorSet;
 
 /**
  * Build a sub-project.
@@ -333,7 +334,7 @@
     public void execute() throws BuildException {
         File savedDir = dir;
         String savedAntFile = antFile;
-        Vector locals = new Vector(targets);
+        Vector locals = new VectorSet(targets);
         try {
             getNewProject();
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java?rev=910832&r1=910831&r2=910832&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java Wed 
Feb 17 05:35:49 2010
@@ -20,7 +20,7 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Hashtable;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Vector;
 import org.apache.tools.ant.BuildException;
@@ -527,7 +527,7 @@
         final char fileSeparator = File.separatorChar;
         Vector targets = new Vector();
         if (targetFilePos != null) {
-            Hashtable addedFiles = new Hashtable();
+            HashSet addedFiles = new HashSet();
             for (int i = 0; i < srcFiles.length; i++) {
                 String[] subTargets = mapper.mapFileName(srcFiles[i]);
                 if (subTargets != null) {
@@ -543,7 +543,7 @@
                         }
                         if (!addedFiles.contains(name)) {
                             targets.addElement(name);
-                            addedFiles.put(name, name);
+                            addedFiles.add(name);
                         }
                     }
                 }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java?rev=910832&r1=910831&r2=910832&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java Wed Feb 
17 05:35:49 2010
@@ -28,6 +28,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.StringTokenizer;
@@ -2320,7 +2321,7 @@
      * @since 1.5
      */
     private void parsePackages(Vector pn, Path sp) {
-        Vector addedPackages = new Vector();
+        HashSet addedPackages = new HashSet();
         Vector dirSets = (Vector) packageSets.clone();
 
         // for each sourcePath entry, add a directoryset with includes
@@ -2403,7 +2404,7 @@
                         String packageName =
                             dirs[i].replace(File.separatorChar, '.');
                         if (!addedPackages.contains(packageName)) {
-                            addedPackages.addElement(packageName);
+                            addedPackages.add(packageName);
                             pn.addElement(packageName);
                         }
                     }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java?rev=910832&r1=910831&r2=910832&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java Wed Feb 
17 05:35:49 2010
@@ -31,6 +31,7 @@
 import java.util.Vector;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.util.FileUtils;
+import org.apache.tools.ant.util.VectorSet;
 
 /**
  * Holds the data of a jar manifest.
@@ -401,7 +402,7 @@
         private Hashtable attributes = new Hashtable();
 
         /** Index used to retain the attribute ordering */
-        private Vector attributeIndex = new Vector();
+        private Vector attributeIndex = new VectorSet();
 
         /**
          * The name of the section; optional -default is the main section.
@@ -784,7 +785,7 @@
     private Hashtable sections = new Hashtable();
 
     /** Index of sections - used to retain order of sections in manifest */
-    private Vector sectionIndex = new Vector();
+    private Vector sectionIndex = new VectorSet();
 
     /**
      * Construct a manifest from Ant's default manifest file.

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java?rev=910832&r1=910831&r2=910832&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java 
Wed Feb 17 05:35:49 2010
@@ -20,8 +20,8 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.Enumeration;
-import java.util.Vector;
+import java.util.HashSet;
+import java.util.Iterator;
 
 /**
  * Destroys all registered <code>Process</code>es when the VM exits.
@@ -30,7 +30,7 @@
  */
 class ProcessDestroyer implements Runnable {
     private static final int THREAD_DIE_TIMEOUT = 20000;
-    private Vector processes = new Vector();
+    private HashSet processes = new HashSet();
     // methods to register and unregister shutdown hooks
     private Method addShutdownHookMethod;
     private Method removeShutdownHookMethod;
@@ -183,8 +183,7 @@
             if (processes.size() == 0) {
                 addShutdownHook();
             }
-            processes.addElement(process);
-            return processes.contains(process);
+            return processes.add(process);
         }
     }
 
@@ -198,7 +197,7 @@
      */
     public boolean remove(Process process) {
         synchronized (processes) {
-            boolean processRemoved = processes.removeElement(process);
+            boolean processRemoved = processes.remove(process);
             if (processRemoved && processes.size() == 0) {
                 removeShutdownHook();
             }
@@ -212,9 +211,9 @@
     public void run() {
         synchronized (processes) {
             running = true;
-            Enumeration e = processes.elements();
-            while (e.hasMoreElements()) {
-                ((Process) e.nextElement()).destroy();
+            Iterator e = processes.iterator();
+            while (e.hasNext()) {
+                ((Process) e.next()).destroy();
             }
         }
     }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/util/VectorSet.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/VectorSet.java?rev=910832&r1=910831&r2=910832&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/VectorSet.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/VectorSet.java Wed Feb 17 
05:35:49 2010
@@ -37,9 +37,25 @@
  *
  * @since Ant 1.8.0
  */
-public class VectorSet extends Vector {
+public final class VectorSet extends Vector {
     private final HashSet set = new HashSet();
 
+    public VectorSet() { super(); }
+
+    public VectorSet(int initialCapacity) { super(initialCapacity); }
+
+    public VectorSet(int initialCapacity, int capacityIncrement) {
+        super(initialCapacity, capacityIncrement);
+    }
+
+    public VectorSet(Collection c) {
+        if (c != null) {
+            for (Iterator i = c.iterator(); i.hasNext(); ) {
+                add(i.next());
+            }
+        }
+    }
+
     public synchronized boolean add(Object o) {
         if (!set.contains(o)) {
             doAdd(size(), o);


Reply via email to