aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java
index cd99db964f..591dd6c224 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionFileSystem.java
@@ -23,11 +23,13 @@ import com.google.common.hash.Hashing;
import com.google.common.io.BaseEncoding;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionInputFileCache;
+import com.google.devtools.build.lib.actions.ActionInputMap;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.FileArtifactValue;
+import com.google.devtools.build.lib.actions.FileArtifactValue.RemoteFileArtifactValue;
import com.google.devtools.build.lib.actions.FileStateType;
import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.profiler.ProfilerTask;
-import com.google.devtools.build.lib.skyframe.FileArtifactValue.RemoteFileArtifactValue;
import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -67,7 +69,7 @@ final class ActionFileSystem extends FileSystem implements ActionInputFileCache,
private final Path execRootPath;
private final ImmutableList<PathFragment> sourceRoots;
- private final InputArtifactData inputArtifactData;
+ private final ActionInputMap inputArtifactData;
/** exec path → artifact and metadata */
private final HashMap<PathFragment, OptionalInputMetadata> optionalInputs;
@@ -93,7 +95,7 @@ final class ActionFileSystem extends FileSystem implements ActionInputFileCache,
FileSystem delegate,
Path execRoot,
ImmutableList<Root> sourceRoots,
- InputArtifactData inputArtifactData,
+ ActionInputMap inputArtifactData,
Iterable<Artifact> allowedInputs,
Iterable<Artifact> outputArtifacts) {
try {
@@ -119,7 +121,7 @@ final class ActionFileSystem extends FileSystem implements ActionInputFileCache,
//
// TODO(shahan): there are no currently known cases where metadata is requested for an
// optional source input. If there are any, we may want to stage those.
- if (input.isSourceArtifact() || inputArtifactData.contains(input)) {
+ if (input.isSourceArtifact() || inputArtifactData.getMetadata(input) != null) {
continue;
}
optionalInputs.computeIfAbsent(
@@ -157,6 +159,12 @@ final class ActionFileSystem extends FileSystem implements ActionInputFileCache,
return getMetadataChecked(actionInput.getExecPath());
}
+ @Override
+ @Nullable
+ public ActionInput getInput(String execPath) {
+ return inputArtifactData.getInput(execPath);
+ }
+
// -------------------- InjectionListener Implementation --------------------
@Override
@@ -265,7 +273,7 @@ final class ActionFileSystem extends FileSystem implements ActionInputFileCache,
@Override
protected void createSymbolicLink(Path linkPath, PathFragment targetFragment) throws IOException {
PathFragment targetExecPath = asExecPath(targetFragment);
- FileArtifactValue inputMetadata = inputArtifactData.get(targetExecPath);
+ FileArtifactValue inputMetadata = inputArtifactData.getMetadata(targetExecPath.getPathString());
if (inputMetadata == null) {
OptionalInputMetadata metadataHolder = optionalInputs.get(targetExecPath);
if (metadataHolder != null) {
@@ -381,7 +389,7 @@ final class ActionFileSystem extends FileSystem implements ActionInputFileCache,
@Nullable
private FileArtifactValue getMetadataChecked(PathFragment execPath) throws IOException {
{
- FileArtifactValue metadata = inputArtifactData.get(execPath);
+ FileArtifactValue metadata = inputArtifactData.getMetadata(execPath.getPathString());
if (metadata != null) {
return metadata;
}