diff options
author | 2018-06-26 11:24:59 -0700 | |
---|---|---|
committer | 2018-06-26 11:27:44 -0700 | |
commit | ef6f4cff9ee3e0c92b61f59ca0585f63ff17e9a4 (patch) | |
tree | 18edd2f65766e2f61f0fe38d4b44497ced83dd09 /src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java | |
parent | 89dfee5221180aa49b559f22eb6d5bf6bc14c769 (diff) |
Instead of depending on mutable inputs of upstream CppCompileAction instances,
CppCompileAction.discoverInputsStage2 retrieves values of discovered modules
from ActionExecutionValue.
This addresses a possible a correctness issue.
PiperOrigin-RevId: 202162180
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java index ae34b1b945..611e3f2059 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java @@ -413,6 +413,9 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver metadataHandler.getOutputTreeArtifactData(), metadataHandler.getAdditionalOutputData(), /*outputSymlinks=*/ null, + (action instanceof IncludeScannable) + ? ((IncludeScannable) action).getDiscoveredModules() + : null, action instanceof NotifyOnActionCacheHit); } @@ -454,6 +457,9 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver // available. if (state.discoveredInputsStage2 == null) { state.discoveredInputsStage2 = action.discoverInputsStage2(env); + if (env.valuesMissing()) { + return null; + } } if (state.discoveredInputsStage2 != null) { addDiscoveredInputs( |