aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java
index 4e044703cf..827bb8a310 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java
@@ -15,8 +15,12 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Interner;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.skyframe.LegacySkyKey;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.skyframe.AbstractSkyKey;
+import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -40,8 +44,29 @@ class PostConfiguredTargetValue implements SkyValue {
return keys.build();
}
- public static SkyKey key(ConfiguredTargetKey lac) {
- return LegacySkyKey.create(SkyFunctions.POST_CONFIGURED_TARGET, lac);
+ public static Key key(ConfiguredTargetKey lac) {
+ return Key.create(lac);
+ }
+
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec
+ static class Key extends AbstractSkyKey<ConfiguredTargetKey> {
+ private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
+
+ private Key(ConfiguredTargetKey arg) {
+ super(arg);
+ }
+
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec.Instantiator
+ static Key create(ConfiguredTargetKey arg) {
+ return interner.intern(new Key(arg));
+ }
+
+ @Override
+ public SkyFunctionName functionName() {
+ return SkyFunctions.POST_CONFIGURED_TARGET;
+ }
}
public ConfiguredTarget getCt() {