aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-06-05 10:26:02 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-05 10:28:09 -0700
commit459b244216900506a052d56ad890fa1194882608 (patch)
treeba1f12cdf2433d7642f82f8f01c4a46033cf559f /src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
parentfc23edc368244849c59636d1e2ae6c375bebf262 (diff)
Add functionality to SerializationContext and @AutoCodec to check that a class is allowed to be serialized in the current context. A codec can now add an explicitly allowed class that can be serialized underneath it (via SerializationContext#addExplicitlyAllowedClass), and that class's codec can check that it is explicitly allowed (via SerializationContext#checkClassExplicitlyAllowed). It is a runtime crash if a codec checks that it was explicitly allowed and finds that it wasn't. Thus, if PackageCodec is invoked without it having been explicitly allowed, we will crash, preventing Package from sneaking into a value it shouldn't be in.
This is only enabled if the codec is memoizing. PiperOrigin-RevId: 199317936
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
index dbbb6a70d4..c0d64c6aeb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
@@ -24,9 +24,7 @@ import com.google.devtools.build.skyframe.SkyValue;
import java.util.Collection;
import java.util.Set;
-/**
- * The value of a TargetCompletion. Currently this just stores a ConfiguredTarget.
- */
+/** The value of a TargetCompletion. Just a sentinel. */
public class TargetCompletionValue implements SkyValue {
@AutoCodec static final TargetCompletionValue INSTANCE = new TargetCompletionValue();