Add codecs for some stray SkyKeys.
PiperOrigin-RevId: 184177838
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java
index 09ce2db..b96e94b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java
@@ -22,6 +22,8 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import java.util.Objects;
@@ -49,17 +51,19 @@
return getStringHelper().add("collection", collection).toString();
}
- private static final Interner<BuildInfoKeyAndConfig> keyInterner =
- BlazeInterners.newWeakInterner();
-
public static BuildInfoKeyAndConfig key(
BuildInfoFactory.BuildInfoKey key, BuildConfiguration config) {
- return keyInterner.intern(
- new BuildInfoKeyAndConfig(key, ConfiguredTargetKey.keyFromConfiguration(config).key));
+ return BuildInfoKeyAndConfig.create(key, ConfiguredTargetKey.keyFromConfiguration(config).key);
}
/** Key for BuildInfoCollectionValues. */
+ @AutoCodec
public static class BuildInfoKeyAndConfig extends ActionLookupKey {
+ private static final Interner<BuildInfoKeyAndConfig> keyInterner =
+ BlazeInterners.newWeakInterner();
+ public static final ObjectCodec<BuildInfoKeyAndConfig> CODEC =
+ new BuildInfoCollectionValue_BuildInfoKeyAndConfig_AutoCodec();
+
private final BuildInfoFactory.BuildInfoKey infoKey;
private final BuildConfigurationValue.Key configKey;
@@ -69,6 +73,12 @@
this.configKey = Preconditions.checkNotNull(configKey, key);
}
+ @AutoCodec.Instantiator
+ static BuildInfoKeyAndConfig create(
+ BuildInfoFactory.BuildInfoKey infoKey, BuildConfigurationValue.Key configKey) {
+ return keyInterner.intern(new BuildInfoKeyAndConfig(infoKey, configKey));
+ }
+
@Override
public SkyFunctionName functionName() {
return SkyFunctions.BUILD_INFO_COLLECTION;