aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-04-12 13:17:53 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-04-12 13:59:11 +0000
commit5215d1e804a830e256a7dc23c44f737a332495f4 (patch)
treece6554586459ed1b809c2b79fa69cbada1780eed /src/main/java/com/google
parente21e592a4079c310522eb2cc23aa49367ba48127 (diff)
Make preprocessor modules mostly stateless; pass in the directories instead.
-- MOS_MIGRATED_REVID=119631623
Diffstat (limited to 'src/main/java/com/google')
-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;