aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-01-27 06:59:08 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-27 07:00:37 -0800
commit4da310b882b354bb542fb79c8791981eeb2e964b (patch)
tree5982ff3f1dcc783509417ec8289aa835cd25977e /src/main/java/com/google/devtools
parent12f82746fd0fc77a35524e002689ab90b7d026dd (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java40
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java11
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(