a little bit faster FS traversal: avoid calling isDirectory()

This commit is contained in:
Eugene Zhuravlev
2012-02-15 19:22:20 +01:00
parent 9ed204bb28
commit e5cc9881d3
@@ -331,17 +331,15 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler
}
private void traverseRecursively(final RootDescriptor rd, final File file, Set<File> excludes, @NotNull final TimestampStorage tsStorage, final boolean forceDirty, @Nullable Set<File> currentFiles) throws IOException {
if (file.isDirectory()) {
if (!PathUtil.isUnder(excludes, file)) {
final File[] children = file.listFiles();
if (children != null) {
for (File child : children) {
traverseRecursively(rd, child, excludes, tsStorage, forceDirty, currentFiles);
}
final File[] children = file.listFiles();
if (children != null) { // is directory
if (children.length > 0 && !PathUtil.isUnder(excludes, file)) {
for (File child : children) {
traverseRecursively(rd, child, excludes, tsStorage, forceDirty, currentFiles);
}
}
}
else {
else { // is file
boolean markDirty = forceDirty;
if (!markDirty) {
markDirty = tsStorage.getStamp(file) != file.lastModified();