aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-07-16 16:29:51 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-16 16:31:22 -0700
commitd491bf10f42e213292382c98a1dc439537f00f43 (patch)
tree8971194363c12107cc24594b247dc37f417ab14d /src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
parenta40f9e30d084a63207affe86fa89fcf4516bb2ba (diff)
Automated rollback of commit eb587075b0d6ffab1cf9e69ede1b7e547905e547.
*** Reason for rollback *** Depot has been fixed. RELNOTES[INC]: If the same artifact is generated by two distinct but identical actions, and a downstream action has both those actions' outputs in its inputs, the artifact will now appear twice in the downstream action's inputs. If this causes problems in Skylark actions, you can use the uniquify=True argument in Args.add_args. PiperOrigin-RevId: 204827477
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
index 3587f089b7..467391af18 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
@@ -54,11 +54,11 @@ class ArtifactFunction implements SkyFunction {
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws ArtifactFunctionException, InterruptedException {
- ArtifactSkyKey artifactSkyKey = (ArtifactSkyKey) skyKey.argument();
- Artifact artifact = artifactSkyKey.getArtifact();
+ Artifact artifact = ArtifactSkyKey.artifact(skyKey);
+ boolean isMandatory = ArtifactSkyKey.isMandatory(skyKey);
if (artifact.isSourceArtifact()) {
try {
- return createSourceValue(artifact, artifactSkyKey.isMandatory(), env);
+ return createSourceValue(artifact, isMandatory, env);
} catch (MissingInputFileException e) {
// The error is not necessarily truly transient, but we mark it as such because we have
// the above side effect of posting an event to the EventBus. Importantly, that event
@@ -281,8 +281,7 @@ class ArtifactFunction implements SkyFunction {
throws InterruptedException {
// This artifact aggregates other artifacts. Keep track of them so callers can find them.
ImmutableList.Builder<Pair<Artifact, FileArtifactValue>> inputs = ImmutableList.builder();
- for (Map.Entry<SkyKey, SkyValue> entry :
- env.getValues(ArtifactSkyKey.mandatoryKeys(action.getInputs())).entrySet()) {
+ for (Map.Entry<SkyKey, SkyValue> entry : env.getValues(action.getInputs()).entrySet()) {
Artifact input = ArtifactSkyKey.artifact(entry.getKey());
SkyValue inputValue = entry.getValue();
if (inputValue == null) {
@@ -323,7 +322,7 @@ class ArtifactFunction implements SkyFunction {
@Override
public String extractTag(SkyKey skyKey) {
- return Label.print(((ArtifactSkyKey) skyKey.argument()).getArtifact().getOwner());
+ return Label.print(ArtifactSkyKey.artifact(skyKey).getOwner());
}
static ActionLookupKey getActionLookupKey(Artifact artifact) {