diff options
author | aclement <aclement> | 2008-04-09 23:45:34 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-04-09 23:45:34 +0000 |
commit | 6fbf0de6132bdb29d1174e7b552fbba2b03f96a6 (patch) | |
tree | 8c3f46c2908b6778f807e5d2e7697ca915e9b195 | |
parent | ad96a03d9a1491121612dc6992d7a64e4943b712 (diff) | |
download | aspectj-6fbf0de6132bdb29d1174e7b552fbba2b03f96a6.tar.gz aspectj-6fbf0de6132bdb29d1174e7b552fbba2b03f96a6.zip |
160868: dont check paths more than once
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java index 4fd950b43..de0ee5a90 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java @@ -701,6 +701,7 @@ public class AjState { if (oldPath.size() != newPath.size()) { return true; } + Set analysedPaths = new HashSet(); for (int i = 0; i < oldPath.size(); i++) { if (!oldPath.get(i).equals(newPath.get(i))) { return true; @@ -725,10 +726,13 @@ public class AjState { } } if (!foundMatch) { - int classFileChanges = classFileChangedInDirSinceLastBuildRequiringFullBuild(f); - if (classFileChanges == CLASS_FILE_CHANGED_THAT_NEEDS_FULL_BUILD) - return true; - // if (b && stateListener!=null) stateListener.detectedClassChangeInThisDir(f); + if (!analysedPaths.contains(f.getAbsolutePath())) { // Do not check paths more than once + analysedPaths.add(f.getAbsolutePath()); + int classFileChanges = classFileChangedInDirSinceLastBuildRequiringFullBuild(f); + if (classFileChanges == CLASS_FILE_CHANGED_THAT_NEEDS_FULL_BUILD) + return true; + // if (b && stateListener!=null) stateListener.detectedClassChangeInThisDir(f); + } } } } |