aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Benjamin Peterson <bp@benjamin.pe>2017-12-11 04:31:37 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-11 04:33:27 -0800
commit09e22056d9c84bf6e024a705b5d3d3549fd13873 (patch)
tree66fc104cd8d473530bf97c788563b05437643a48 /src/main/java/com/google/devtools/build/lib/analysis
parente7707580aa47b1dea03c2c6af2438219ee8d9bd6 (diff)
Avoid expansion of NestedSets in MiddlemanFactory.
MiddlemanFactory wants to check if the middleman inputs set is empty or singleton. A NestedSet can answer both queries efficiently if the right APIs are used. My ultimate goal here is to avoid the expansion of runfiles artifacts nested sets until execution. Change-Id: I29a269df757ef41b1410bbb492cf24c926df6114 PiperOrigin-RevId: 178600943
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
index acc30fa783..84bb2e63ff 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.actions.SymlinkTreeAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
+import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.syntax.Type;
@@ -264,8 +265,8 @@ public final class RunfilesSupport {
return sourcesManifest;
}
- private Artifact createArtifactsMiddleman(ActionConstructionContext context,
- Iterable<Artifact> allRunfilesArtifacts) {
+ private Artifact createArtifactsMiddleman(
+ ActionConstructionContext context, NestedSet<Artifact> allRunfilesArtifacts) {
return context.getAnalysisEnvironment().getMiddlemanFactory().createRunfilesMiddleman(
context.getActionOwner(), owningExecutable, allRunfilesArtifacts,
context.getMiddlemanDirectory(),