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);