From 8716f5070b110a3fce665cf6520d9682dcba3bbe Mon Sep 17 00:00:00 2001 From: "bazel.build machine account" Date: Sat, 21 Sep 2024 00:39:37 +0200 Subject: [PATCH] [7.4.0] Precompute hashcode for `RepositoryName`. (#23697) PiperOrigin-RevId: 676817381 Change-Id: I66b566ed75be858b3f2d92a8ac751bc97358a578 Commit https://github.com/bazelbuild/bazel/commit/5949aacc3a92e36e25293120c93d409f42e79b46 Co-authored-by: Googler --- .../devtools/build/lib/cmdline/RepositoryName.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java index e70065bced006e..992c4760bb7317 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java @@ -20,6 +20,7 @@ import com.google.common.base.Preconditions; import com.google.common.base.Throwables; import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant; +import com.google.devtools.build.lib.util.HashCodes; import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.util.StringCanonicalizer; import com.google.devtools.build.lib.util.StringUtilities; @@ -138,6 +139,8 @@ public static Pair fromPathFragment( */ @Nullable private final String didYouMeanSuffix; + private final int hashCode; + private RepositoryName( String name, @Nullable RepositoryName ownerRepoIfNotVisible, @@ -145,6 +148,9 @@ private RepositoryName( this.name = name; this.ownerRepoIfNotVisible = ownerRepoIfNotVisible; this.didYouMeanSuffix = didYouMeanSuffix; + this.hashCode = + 31 * OsPathPolicy.getFilePathOs().hash(name) + + HashCodes.hashObjects(ownerRepoIfNotVisible, didYouMeanSuffix); } private RepositoryName(String name) { @@ -367,7 +373,6 @@ public boolean equals(Object object) { @Override public int hashCode() { - return Objects.hash( - OsPathPolicy.getFilePathOs().hash(name), ownerRepoIfNotVisible, didYouMeanSuffix); + return hashCode; } }