aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Michajlo Matijkiw <michajlo@google.com>2015-12-22 21:37:55 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-12-28 19:43:34 +0000
commit19e19e2fba0e1185b89a2104517adcf1dfb8d4bd (patch)
tree6861ce2e94fd766dd04eb0159615c826a301cdeb /src/main/java
parent9799246dc64429bc8f5b612c2596715180fe7592 (diff)
Avoid double parsing PackageIdentifier PathFragments
Not the most elegant, but not super intrusive. Can result in extra interned PackageIdentifiers, but in practice this should be very few. -- MOS_MIGRATED_REVID=110794705
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/Label.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
index 89ac2f8341..70b4183d75 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
@@ -66,9 +66,10 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin
}
try {
LabelValidator.PackageAndTarget labelParts = LabelValidator.parseAbsoluteLabel(absName);
- validate(labelParts.getPackageName(), labelParts.getTargetName());
+ PackageIdentifier pkgIdWithoutRepo =
+ validate(labelParts.getPackageName(), labelParts.getTargetName());
return new Label(
- PackageIdentifier.create(repo, new PathFragment(labelParts.getPackageName())),
+ PackageIdentifier.create(repo, pkgIdWithoutRepo.getPackageFragment()),
labelParts.getTargetName());
} catch (BadLabelException e) {
throw new LabelSyntaxException(e.getMessage());
@@ -169,8 +170,8 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin
}
/**
- * Validates the given package name and returns a canonical PathFragment instance if it is valid.
- * Otherwise it throws a SyntaxException.
+ * Validates the given package name and returns a canonical {@link PackageIdentifier} instance
+ * if it is valid. Otherwise it throws a SyntaxException.
*/
private static PackageIdentifier validate(String packageIdentifier, String name)
throws LabelSyntaxException {