aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-25 15:36:55 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-07-26 09:30:04 +0000
commit7cf2460a0c2908938f75b5284c0d8e2a0a48e1dc (patch)
tree22cc427a3e6a1817c121334aa5fd2f8d442e7366
parent15775b24db1f0fea316e49a1e2d177e44cd4069d (diff)
Call precomputed() on static CharMatcher instances.
Removes a noticeable hotspot from LabelValidator.validateTargetName(). -- MOS_MIGRATED_REVID=128359980
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/LabelExpander.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/ShellEscaper.java3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LabelExpander.java b/src/main/java/com/google/devtools/build/lib/analysis/LabelExpander.java
index f067ddb073..5873b4df0d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LabelExpander.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LabelExpander.java
@@ -63,7 +63,8 @@ public final class LabelExpander {
CharMatcher.inRange('a', 'z')
.or(CharMatcher.inRange('A', 'Z'))
.or(CharMatcher.inRange('0', '9'))
- .or(CharMatcher.anyOf(":/_.-+" + PathFragment.SEPARATOR_CHAR));
+ .or(CharMatcher.anyOf(":/_.-+" + PathFragment.SEPARATOR_CHAR))
+ .precomputed();
/**
* Expands all references to labels embedded within a string using the
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java b/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java
index 42510c7f56..e9c0db32cd 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java
@@ -48,7 +48,8 @@ public final class LabelValidator {
private static final CharMatcher ALWAYS_ALLOWED_TARGET_CHARACTERS =
CharMatcher.javaLetterOrDigit()
.or(PUNCTUATION_REQUIRING_QUOTING)
- .or(PUNCTUATION_NOT_REQUIRING_QUOTING);
+ .or(PUNCTUATION_NOT_REQUIRING_QUOTING)
+ .precomputed();
@VisibleForTesting
static final String PACKAGE_NAME_ERROR =
diff --git a/src/main/java/com/google/devtools/build/lib/util/ShellEscaper.java b/src/main/java/com/google/devtools/build/lib/util/ShellEscaper.java
index 48d311f2b8..0548d5f733 100644
--- a/src/main/java/com/google/devtools/build/lib/util/ShellEscaper.java
+++ b/src/main/java/com/google/devtools/build/lib/util/ShellEscaper.java
@@ -62,7 +62,8 @@ public final class ShellEscaper extends Escaper {
CharMatcher.anyOf("@%-_+:,./")
.or(CharMatcher.inRange('0', '9')) // We can't use CharMatcher.javaLetterOrDigit(),
.or(CharMatcher.inRange('a', 'z')) // that would also accept non-ASCII digits and
- .or(CharMatcher.inRange('A', 'Z')); // letters.
+ .or(CharMatcher.inRange('A', 'Z')) // letters.
+ .precomputed();
/**
* Escapes a string by adding strong (single) quotes around it if necessary.