diff options
author | janakr <janakr@google.com> | 2018-01-27 06:59:08 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-27 07:00:37 -0800 |
commit | 4da310b882b354bb542fb79c8791981eeb2e964b (patch) | |
tree | 5982ff3f1dcc783509417ec8289aa835cd25977e /src/main/java/com/google/devtools | |
parent | 12f82746fd0fc77a35524e002689ab90b7d026dd (diff) |
Add codec for ConfiguredTargetKey and remove stray LegacySkyKey constructors that took ConfiguredTargetKey.
PiperOrigin-RevId: 183519981
Diffstat (limited to 'src/main/java/com/google/devtools')
4 files changed, 44 insertions, 21 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java index c2353b8dda..166119f6a4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java @@ -22,7 +22,12 @@ import com.google.devtools.build.lib.analysis.ConfiguredTarget; 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.SerializationException; import com.google.devtools.build.skyframe.SkyFunctionName; +import com.google.protobuf.CodedInputStream; +import com.google.protobuf.CodedOutputStream; +import java.io.IOException; import java.util.Objects; import javax.annotation.Nullable; @@ -31,6 +36,8 @@ import javax.annotation.Nullable; * action of an artifact. */ public class ConfiguredTargetKey extends ActionLookupKey { + public static final ObjectCodec<ConfiguredTargetKey> CODEC = Codec.INSTANCE; + private final Label label; @Nullable private final BuildConfigurationValue.Key configurationKey; @@ -192,4 +199,37 @@ public class ConfiguredTargetKey extends ActionLookupKey { this.isHost = isHost; } } + + private static final class Codec implements ObjectCodec<ConfiguredTargetKey> { + private static final Codec INSTANCE = new Codec(); + + private Codec() {} + + @Override + public Class<ConfiguredTargetKey> getEncodedClass() { + return ConfiguredTargetKey.class; + } + + @Override + public void serialize(ConfiguredTargetKey obj, CodedOutputStream codedOut) + throws SerializationException, IOException { + Label.CODEC.serialize(obj.label, codedOut); + if (obj.configurationKey == null) { + codedOut.writeBoolNoTag(false); + } else { + codedOut.writeBoolNoTag(true); + BuildConfigurationValue.Key.CODEC.serialize(obj.configurationKey, codedOut); + } + codedOut.writeBoolNoTag(obj.isHostConfiguration()); + } + + @Override + public ConfiguredTargetKey deserialize(CodedInputStream codedIn) + throws SerializationException, IOException { + return of( + Label.CODEC.deserialize(codedIn), + codedIn.readBool() ? BuildConfigurationValue.Key.CODEC.deserialize(codedIn) : null, + codedIn.readBool()); + } + } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java index 1f34c530a8..b587ab9d4b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java @@ -23,7 +23,6 @@ import com.google.devtools.build.lib.analysis.platform.PlatformProviderUtils; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException; -import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; @@ -92,11 +91,7 @@ public class RegisteredExecutionPlatformsFunction implements SkyFunction { ImmutableList<SkyKey> keys = labels .stream() - .map( - label -> - LegacySkyKey.create( - SkyFunctions.CONFIGURED_TARGET, - ConfiguredTargetKey.of(label, configuration))) + .map(label -> ConfiguredTargetKey.of(label, configuration)) .collect(ImmutableList.toImmutableList()); Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> values = diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java index ad531b30f5..7a2c948efe 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java @@ -23,7 +23,6 @@ import com.google.devtools.build.lib.analysis.platform.DeclaredToolchainInfo; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException; -import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; @@ -102,11 +101,7 @@ public class RegisteredToolchainsFunction implements SkyFunction { ImmutableList<SkyKey> keys = labels .stream() - .map( - label -> - LegacySkyKey.create( - SkyFunctions.CONFIGURED_TARGET, - ConfiguredTargetKey.of(label, configuration))) + .map(label -> ConfiguredTargetKey.of(label, configuration)) .collect(ImmutableList.toImmutableList()); Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> values = diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java index 11e44fca77..d6871364d6 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java @@ -30,7 +30,6 @@ import com.google.devtools.build.lib.skyframe.RegisteredToolchainsFunction.Inval import com.google.devtools.build.lib.skyframe.ToolchainResolutionFunction.NoToolchainFoundException; import com.google.devtools.build.lib.skyframe.ToolchainResolutionValue.ToolchainResolutionKey; import com.google.devtools.build.lib.syntax.EvalException; -import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.ValueOrException; @@ -141,14 +140,8 @@ public class ToolchainUtil { Label executionPlatformLabel = platformConfiguration.getExecutionPlatform(); Label targetPlatformLabel = platformConfiguration.getTargetPlatforms().get(0); - SkyKey executionPlatformKey = - LegacySkyKey.create( - SkyFunctions.CONFIGURED_TARGET, - ConfiguredTargetKey.of(executionPlatformLabel, configuration)); - SkyKey targetPlatformKey = - LegacySkyKey.create( - SkyFunctions.CONFIGURED_TARGET, - ConfiguredTargetKey.of(targetPlatformLabel, configuration)); + SkyKey executionPlatformKey = ConfiguredTargetKey.of(executionPlatformLabel, configuration); + SkyKey targetPlatformKey = ConfiguredTargetKey.of(targetPlatformLabel, configuration); Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> values = env.getValuesOrThrow( |