diff options
author | Benjamin Peterson <bp@benjamin.pe> | 2017-12-11 04:31:37 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-11 04:33:27 -0800 |
commit | 09e22056d9c84bf6e024a705b5d3d3549fd13873 (patch) | |
tree | 66fc104cd8d473530bf97c788563b05437643a48 /src/main/java/com/google/devtools/build/lib/analysis | |
parent | e7707580aa47b1dea03c2c6af2438219ee8d9bd6 (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.java | 5 |
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(), |