diff options
author | 2015-12-22 21:37:55 +0000 | |
---|---|---|
committer | 2015-12-28 19:43:34 +0000 | |
commit | 19e19e2fba0e1185b89a2104517adcf1dfb8d4bd (patch) | |
tree | 6861ce2e94fd766dd04eb0159615c826a301cdeb /src/main/java | |
parent | 9799246dc64429bc8f5b612c2596715180fe7592 (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.java | 9 |
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 { |