diff options
author | 2016-04-12 13:17:53 +0000 | |
---|---|---|
committer | 2016-04-12 13:59:11 +0000 | |
commit | 5215d1e804a830e256a7dc23c44f737a332495f4 (patch) | |
tree | ce6554586459ed1b809c2b79fa69cbada1780eed /src/main | |
parent | e21e592a4079c310522eb2cc23aa49367ba48127 (diff) |
Make preprocessor modules mostly stateless; pass in the directories instead.
--
MOS_MIGRATED_REVID=119631623
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java | 9 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java | 4 |
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; |