diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/actions')
10 files changed, 53 insertions, 78 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java index 0df7abe34a..951b4c127e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java @@ -71,21 +71,18 @@ public final class BinaryFileWriteAction extends AbstractFileWriteAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addString(String.valueOf(makeExecutable)); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); + fp.addString(String.valueOf(makeExecutable)); try (InputStream in = source.openStream()) { byte[] buffer = new byte[512]; int amountRead; while ((amountRead = in.read(buffer)) != -1) { - f.addBytes(buffer, 0, amountRead); + fp.addBytes(buffer, 0, amountRead); } } catch (IOException e) { throw new RuntimeException(e); } - - return f.hexDigestAndReset(); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java index 6ba8be6741..5a75dffc0e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java @@ -244,12 +244,10 @@ public final class FileWriteAction extends AbstractFileWriteAction { /** Computes the Action key for this action by computing the fingerprint for the file contents. */ @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addString(String.valueOf(makeExecutable)); - f.addString(getFileContents()); - return f.hexDigestAndReset(); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); + fp.addString(String.valueOf(makeExecutable)); + fp.addString(getFileContents()); } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java index d674852f4e..5ad73764c1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/LauncherFileWriteAction.java @@ -87,16 +87,14 @@ public final class LauncherFileWriteAction extends AbstractFileWriteAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); try { - f.addBytes(this.launcher.getPath().getDigest()); + fp.addBytes(this.launcher.getPath().getDigest()); } catch (IOException e) { throw new RuntimeException(e); } - f.addString(this.launchInfo.fingerPrint); - return f.hexDigestAndReset(); + fp.addString(this.launchInfo.fingerPrint); } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWritePathsFileAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWritePathsFileAction.java index be17d7dd2d..f351fb53ea 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWritePathsFileAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWritePathsFileAction.java @@ -22,7 +22,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext; import com.google.devtools.build.lib.actions.ActionKeyContext; import com.google.devtools.build.lib.actions.ActionOwner; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.actions.CommandLineExpansionException; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.util.Fingerprint; @@ -65,17 +64,12 @@ public final class LazyWritePathsFileAction extends AbstractFileWriteAction { }; } - /** - * Computes the Action key for this action by computing the fingerprint for the file contents. - */ + /** Computes the Action key for this action by computing the fingerprint for the file contents. */ @Override - protected String computeKey(ActionKeyContext actionKeyContext) - throws CommandLineExpansionException { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addBoolean(includeDerivedArtifacts); - f.addString(getContents()); - return f.hexDigestAndReset(); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); + fp.addBoolean(includeDerivedArtifacts); + fp.addString(getContents()); } private String getContents() { diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java index 03b2084064..7af135b67c 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java @@ -178,14 +178,12 @@ public final class ParameterFileWriteAction extends AbstractFileWriteAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) throws CommandLineExpansionException { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addString(String.valueOf(makeExecutable)); - f.addString(type.toString()); - f.addString(charset.toString()); - commandLine.addToFingerprint(actionKeyContext, f); - return f.hexDigestAndReset(); + fp.addString(GUID); + fp.addString(String.valueOf(makeExecutable)); + fp.addString(type.toString()); + fp.addString(charset.toString()); + commandLine.addToFingerprint(actionKeyContext, fp); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java index fb9dc28823..131830a41e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java @@ -211,18 +211,16 @@ public final class PopulateTreeArtifactAction extends AbstractAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addString(getMnemonic()); - f.addStrings(spawnCommandLine()); - f.addPaths(zipper.getRunfilesSupplier().getRunfilesDirs()); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); + fp.addString(getMnemonic()); + fp.addStrings(spawnCommandLine()); + fp.addPaths(zipper.getRunfilesSupplier().getRunfilesDirs()); List<Artifact> runfilesManifests = zipper.getRunfilesSupplier().getManifests(); - f.addInt(runfilesManifests.size()); + fp.addInt(runfilesManifests.size()); for (Artifact manifest : runfilesManifests) { - f.addPath(manifest.getExecPath()); + fp.addPath(manifest.getExecPath()); } - return f.hexDigestAndReset(); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java index e991541ecc..3a5b225cdf 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java @@ -328,25 +328,23 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie } @Override - protected String computeKey(ActionKeyContext actionKeyContext) + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) throws CommandLineExpansionException { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - argv.addToFingerprint(actionKeyContext, f); - f.addString(getMnemonic()); + fp.addString(GUID); + argv.addToFingerprint(actionKeyContext, fp); + fp.addString(getMnemonic()); // We don't need the toolManifests here, because they are a subset of the inputManifests by // definition and the output of an action shouldn't change whether something is considered a // tool or not. - f.addPaths(getRunfilesSupplier().getRunfilesDirs()); + fp.addPaths(getRunfilesSupplier().getRunfilesDirs()); ImmutableList<Artifact> runfilesManifests = getRunfilesSupplier().getManifests(); - f.addInt(runfilesManifests.size()); + fp.addInt(runfilesManifests.size()); for (Artifact runfilesManifest : runfilesManifests) { - f.addPath(runfilesManifest.getExecPath()); + fp.addPath(runfilesManifest.getExecPath()); } - f.addStringMap(getEnvironment()); - f.addStrings(getClientEnvironmentVariables()); - f.addStringMap(getExecutionInfo()); - return f.hexDigestAndReset(); + fp.addStringMap(getEnvironment()); + fp.addStrings(getClientEnvironmentVariables()); + fp.addStringMap(getExecutionInfo()); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java index 5a74e0b8b3..d0aba38bdc 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java @@ -128,15 +128,13 @@ public class SymlinkAction extends AbstractAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); // We don't normally need to add inputs to the key. In this case, however, the inputPath can be // different from the actual input artifact. if (inputPath != null) { - f.addPath(inputPath); + fp.addPath(inputPath); } - return f.hexDigestAndReset(); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java index 3b2750df5a..60d75e1ede 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java @@ -91,11 +91,9 @@ public final class SymlinkTreeAction extends AbstractAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addInt(filesetTree ? 1 : 0); - return f.hexDigestAndReset(); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); + fp.addInt(filesetTree ? 1 : 0); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java index 644129157a..c5af5d1042 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java @@ -439,17 +439,15 @@ public final class TemplateExpansionAction extends AbstractFileWriteAction { } @Override - protected String computeKey(ActionKeyContext actionKeyContext) { - Fingerprint f = new Fingerprint(); - f.addString(GUID); - f.addString(String.valueOf(makeExecutable)); - f.addString(template.getKey()); - f.addInt(substitutions.size()); + protected void computeKey(ActionKeyContext actionKeyContext, Fingerprint fp) { + fp.addString(GUID); + fp.addString(String.valueOf(makeExecutable)); + fp.addString(template.getKey()); + fp.addInt(substitutions.size()); for (Substitution entry : substitutions) { - f.addString(entry.getKey()); - f.addString(entry.getValue()); + fp.addString(entry.getKey()); + fp.addString(entry.getValue()); } - return f.hexDigestAndReset(); } @Override |