Use `SkyKeyInterner` for more `SkyKey` types.
PiperOrigin-RevId: 579840409
Change-Id: I67eeea72f2bb935581f6f7afe71f0b72fb6f4c1a
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java
index a80ba14..cbdd287 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java
@@ -16,15 +16,14 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Interner;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.actions.BasicActionLookupValue;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
+import com.google.devtools.build.skyframe.SkyKey;
/** Value that stores expanded actions from ActionTemplate. */
public final class ActionTemplateExpansionValue extends BasicActionLookupValue {
@@ -40,8 +39,7 @@
/** Key for {@link ActionTemplateExpansionValue} nodes. */
@AutoCodec
public static final class ActionTemplateExpansionKey implements ActionLookupKey {
- private static final Interner<ActionTemplateExpansionKey> interner =
- BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<ActionTemplateExpansionKey> interner = SkyKey.newInterner();
private final ActionLookupKey actionLookupKey;
private final int actionIndex;
@@ -85,6 +83,11 @@
}
@Override
+ public SkyKeyInterner<ActionTemplateExpansionKey> getSkyKeyInterner() {
+ return interner;
+ }
+
+ @Override
public int hashCode() {
return 37 * actionLookupKey.hashCode() + actionIndex;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
index 62e2ca4..ce12386 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
@@ -18,7 +18,6 @@
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Interner;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.ActionExecutionException;
@@ -36,7 +35,6 @@
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
import com.google.devtools.build.lib.bugreport.BugReport;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.server.FailureDetails.Execution;
import com.google.devtools.build.lib.server.FailureDetails.Execution.Code;
@@ -589,8 +587,8 @@
private static final class DirectoryArtifactTraversalRequest extends TraversalRequest {
- private static final Interner<DirectoryArtifactTraversalRequest> interner =
- BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<DirectoryArtifactTraversalRequest> interner =
+ SkyKey.newInterner();
static DirectoryArtifactTraversalRequest create(
DirectTraversalRoot root, boolean skipTestingForSubpackage, Artifact artifact) {
@@ -651,6 +649,11 @@
}
@Override
+ public SkyKeyInterner<DirectoryArtifactTraversalRequest> getSkyKeyInterner() {
+ return interner;
+ }
+
+ @Override
public int hashCode() {
// Artifact is only for error info and not considered in hash code or equality.
return root.hashCode() * 31 + Boolean.hashCode(skipTestingForSubpackage);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
index 403009f..8e97287 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
@@ -17,9 +17,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Interner;
import com.google.devtools.build.lib.cmdline.RepositoryName;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
@@ -239,7 +237,7 @@
@AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends RecursivePkgSkyKey {
- private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
private Key(
RepositoryName repositoryName,
@@ -261,5 +259,10 @@
public SkyFunctionName functionName() {
return SkyFunctions.COLLECT_PACKAGES_UNDER_DIRECTORY;
}
+
+ @Override
+ public SkyKeyInterner<Key> getSkyKeyInterner() {
+ return interner;
+ }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java
index cd0492d..27708c7 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java
@@ -16,8 +16,6 @@
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Interner;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.query2.common.UniverseSkyKey;
@@ -65,8 +63,7 @@
@AutoCodec.VisibleForSerialization
@AutoCodec
static class TargetPatternSequence implements UniverseSkyKey {
- private static final Interner<TargetPatternSequence> interner =
- BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<TargetPatternSequence> interner = SkyKey.newInterner();
private final ImmutableList<String> patterns;
private final PathFragment offset;
@@ -92,6 +89,11 @@
}
@Override
+ public SkyKeyInterner<TargetPatternSequence> getSkyKeyInterner() {
+ return interner;
+ }
+
+ @Override
public boolean equals(Object o) {
if (this == o) {
return true;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
index 7e190be..43945eb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
@@ -14,12 +14,10 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Interner;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
@@ -27,6 +25,7 @@
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunctionName;
+import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
/**
@@ -75,7 +74,7 @@
@AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends RecursivePkgSkyKey {
- private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
private Key(
RepositoryName repositoryName,
@@ -97,5 +96,10 @@
public SkyFunctionName functionName() {
return SkyFunctions.RECURSIVE_PKG;
}
+
+ @Override
+ public SkyKeyInterner<Key> getSkyKeyInterner() {
+ return interner;
+ }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
index 8ad9fba..7c96ec5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
@@ -14,11 +14,9 @@
package com.google.devtools.build.lib.skyframe;
import com.google.auto.value.AutoValue;
-import com.google.common.collect.Interner;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -58,7 +56,7 @@
@AutoCodec
@AutoValue
public abstract static class TestCompletionKey implements SkyKey {
- private static final Interner<TestCompletionKey> interner = BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<TestCompletionKey> interner = SkyKey.newInterner();
@AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
@@ -85,5 +83,10 @@
public final boolean valueIsShareable() {
return false;
}
+
+ @Override
+ public final SkyKeyInterner<TestCompletionKey> getSkyKeyInterner() {
+ return interner;
+ }
}
}
diff --git a/src/test/java/com/google/devtools/build/skyframe/GraphTester.java b/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
index 6b90abd..2693512 100644
--- a/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
+++ b/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
@@ -19,14 +19,13 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Interner;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
+import com.google.devtools.build.skyframe.SkyKey.SkyKeyInterner;
import com.google.devtools.build.skyframe.SkyframeLookupResult.QueryDepCallback;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.HashMap;
@@ -512,7 +511,7 @@
@AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<String> {
- private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
private Key(String arg) {
super(arg);
@@ -528,12 +527,17 @@
public SkyFunctionName functionName() {
return SkyFunctionName.FOR_TESTING;
}
+
+ @Override
+ public SkyKeyInterner<Key> getSkyKeyInterner() {
+ return interner;
+ }
}
@AutoCodec.VisibleForSerialization
@AutoCodec
static class NonHermeticKey extends AbstractSkyKey<String> {
- private static final Interner<NonHermeticKey> interner = BlazeInterners.newWeakInterner();
+ private static final SkyKeyInterner<NonHermeticKey> interner = SkyKey.newInterner();
private NonHermeticKey(String arg) {
super(arg);
@@ -549,6 +553,11 @@
public SkyFunctionName functionName() {
return FOR_TESTING_NONHERMETIC;
}
+
+ @Override
+ public SkyKeyInterner<NonHermeticKey> getSkyKeyInterner() {
+ return interner;
+ }
}
private static final SkyFunctionName FOR_TESTING_NONHERMETIC =