Optimize PackageIdentifier hash code implementation, which has shown up in some recent profiling.
--
MOS_MIGRATED_REVID=112161558
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 13f795e..b29e820 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
@@ -33,7 +33,6 @@
import java.io.ObjectOutputStream;
import java.io.ObjectStreamException;
import java.io.Serializable;
-import java.util.Objects;
import java.util.concurrent.ExecutionException;
import java.util.regex.Pattern;
@@ -287,10 +286,9 @@
private final PathFragment pkgName;
private PackageIdentifier(RepositoryName repository, PathFragment pkgName) {
- Preconditions.checkNotNull(repository);
- Preconditions.checkNotNull(pkgName);
- this.repository = repository;
- this.pkgName = Canonicalizer.fragments().intern(pkgName.normalize());
+ this.repository = Preconditions.checkNotNull(repository);
+ this.pkgName = Canonicalizer.fragments().intern(
+ Preconditions.checkNotNull(pkgName).normalize());
}
public static PackageIdentifier parse(String input) throws LabelSyntaxException {
@@ -365,7 +363,7 @@
@Override
public int hashCode() {
- return Objects.hash(repository, pkgName);
+ return 31 * repository.hashCode() + pkgName.hashCode();
}
@Override