diff options
author | shreyax <shreyax@google.com> | 2018-06-02 15:08:51 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-02 15:09:58 -0700 |
commit | 43a1dc799f068daaf5487e92ace90ad65d0560bf (patch) | |
tree | d8a965f43f61c869aa9dee452a36024bc3a05086 /src/main/java/com/google/devtools/build/lib/cmdline | |
parent | ff008f445905bf6f4601a368782b620f7899d322 (diff) |
Fast-path Label#equals by first comparing the interned PackageIdentifier.
PiperOrigin-RevId: 199007753
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/Label.java | 5 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java | 1 |
2 files changed, 3 insertions, 3 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 f271ea6c8b..61805ca5ae 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 @@ -539,9 +539,8 @@ public final class Label return false; } Label otherLabel = (Label) other; - // Perform the equality comparisons in order from least likely to most likely. - return name.equals(otherLabel.name) - && packageIdentifier.equals(otherLabel.packageIdentifier); + // Package identifiers are interned so we compare them first. + return packageIdentifier.equals(otherLabel.packageIdentifier) && name.equals(otherLabel.name); } /** diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java index d8bf3bf91c..8d7ad1910a 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java @@ -46,6 +46,7 @@ public final class PackageIdentifier @AutoCodec.Instantiator public static PackageIdentifier create(RepositoryName repository, PathFragment pkgName) { + // Note: We rely on these being interned to fast-path Label#equals. return INTERNER.intern(new PackageIdentifier(repository, pkgName)); } |