aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java4
2 files changed, 7 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java b/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
index 7a1f753678..787d09e0c5 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java
@@ -39,10 +39,11 @@ public interface Preprocessor {
/**
* Returns a Preprocessor factory to use for getting Preprocessor instances.
*
- * <p>The CachingPackageLocator is provided so the constructed preprocessors can look up
- * other BUILD files.
+ * @param loc a package locator for preprocessors to look up other BUILD files
+ * @param outputBase allows non-hermetic access to the file system and output base; use with
+ * extreme caution
*/
- Factory getFactory(CachingPackageLocator loc);
+ Factory getFactory(CachingPackageLocator loc, Path outputBase);
/** Supplier that always returns {@code NullFactory.INSTANCE}. */
static class NullSupplier implements Supplier {
@@ -53,7 +54,7 @@ public interface Preprocessor {
}
@Override
- public Factory getFactory(CachingPackageLocator loc) {
+ public Factory getFactory(CachingPackageLocator loc, Path outputBase) {
return NullFactory.INSTANCE;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 661a70a332..ffe4091ceb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -949,12 +949,12 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
private void checkPreprocessorFactory() {
if (preprocessorFactory == null) {
Preprocessor.Factory newPreprocessorFactory = preprocessorFactorySupplier.getFactory(
- packageManager);
+ packageManager, directories.getOutputBase());
pkgFactory.setPreprocessorFactory(newPreprocessorFactory);
preprocessorFactory = newPreprocessorFactory;
} else if (!preprocessorFactory.isStillValid()) {
Preprocessor.Factory newPreprocessorFactory = preprocessorFactorySupplier.getFactory(
- packageManager);
+ packageManager, directories.getOutputBase());
invalidate(SkyFunctionName.functionIs(SkyFunctions.PACKAGE));
pkgFactory.setPreprocessorFactory(newPreprocessorFactory);
preprocessorFactory = newPreprocessorFactory;