From a62c18b46505e8c47c8fd837b75fd6cc9672b77a Mon Sep 17 00:00:00 2001 From: Matthew Jason Benson Date: Mon, 7 Mar 2005 17:13:05 +0000 Subject: [PATCH] Reuse boolean[] instances for case-sensitivity iterations when scanning; reverse logic for better clarity of intent with these arrays. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277815 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/DirectoryScanner.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java index 256f52204..9c7ae21a8 100644 --- a/src/main/org/apache/tools/ant/DirectoryScanner.java +++ b/src/main/org/apache/tools/ant/DirectoryScanner.java @@ -168,6 +168,12 @@ public class DirectoryScanner /** Helper. */ private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); + /** iterations for case-sensitive scanning. */ + private static final boolean[] csScanOnly = new boolean[] {true}; + + /** iterations for non-case-sensitive scanning. */ + private static final boolean[] csThenNonCs = new boolean[] {true, false}; + /** * Patterns which should be excluded by default. * @@ -1522,13 +1528,11 @@ public class DirectoryScanner } String current = (String) pathElements.remove(0); - //always scan first NOT ignoring case; if cs, do a 2nd scan ignoring case: - boolean[] ignoreCase = cs ? new boolean[] {false} - : new boolean[] {false, true}; - for (int i = 0; i < ignoreCase.length; i++) { + boolean[] matchCase = cs ? csScanOnly : csThenNonCs; + for (int i = 0; i < matchCase.length; i++) { for (int j = 0; j < files.length; j++) { - if (ignoreCase[i] ? files[j].equalsIgnoreCase(current) - : files[j].equals(current)) { + if (matchCase[i] ? files[j].equals(current) + : files[j].equalsIgnoreCase(current)) { return findFile(new File(base, files[j]), pathElements, cs); } }