aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Michajlo Matijkiw <michajlo@google.com>2015-11-12 22:17:24 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-11-13 10:22:40 +0000
commit0363c7d3bb51d30952c39666ca7c9a83587b2983 (patch)
tree37dee42548c2f0df5b36342bc428e0e9a68ac9b0 /src/main/java/com/google/devtools/build
parentcc8bcc811c4b82ce9f4b96c0550a3562a344a9ea (diff)
Make it easier to reuse empty PrepareDepsOfTargetsUnderDirectoryValue singletons
-- MOS_MIGRATED_REVID=107719658
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java18
2 files changed, 18 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
index ce0f094c97..e7d487fb4f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
@@ -110,7 +110,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunction implements SkyFunction {
}
builder.put(prepDepsKey.getRecursivePkgKey().getRootedPath(), packagesInSubdirectory);
}
- return new PrepareDepsOfTargetsUnderDirectoryValue(visitor.isDirectoryPackage(),
+ return PrepareDepsOfTargetsUnderDirectoryValue.of(visitor.isDirectoryPackage(),
builder.build());
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
index 7984b6708e..c98dac6f7c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
@@ -52,11 +52,27 @@ import java.util.Objects;
public final class PrepareDepsOfTargetsUnderDirectoryValue implements SkyValue {
public static final PrepareDepsOfTargetsUnderDirectoryValue EMPTY =
new PrepareDepsOfTargetsUnderDirectoryValue(false, ImmutableMap.<RootedPath, Boolean>of());
+ public static final PrepareDepsOfTargetsUnderDirectoryValue EMPTY_DIRECTORY_PACKAGE =
+ new PrepareDepsOfTargetsUnderDirectoryValue(true, ImmutableMap.<RootedPath, Boolean>of());
+
+ public static final PrepareDepsOfTargetsUnderDirectoryValue of(boolean isDirectoryPackage,
+ ImmutableMap<RootedPath, Boolean> subdirectoryTransitivelyContainsPackages) {
+ if (subdirectoryTransitivelyContainsPackages.isEmpty()) {
+ if (isDirectoryPackage) {
+ return EMPTY_DIRECTORY_PACKAGE;
+ } else {
+ return EMPTY;
+ }
+ } else {
+ return new PrepareDepsOfTargetsUnderDirectoryValue(
+ isDirectoryPackage, subdirectoryTransitivelyContainsPackages);
+ }
+ }
private final boolean isDirectoryPackage;
private final ImmutableMap<RootedPath, Boolean> subdirectoryTransitivelyContainsPackages;
- public PrepareDepsOfTargetsUnderDirectoryValue(boolean isDirectoryPackage,
+ private PrepareDepsOfTargetsUnderDirectoryValue(boolean isDirectoryPackage,
ImmutableMap<RootedPath, Boolean> subdirectoryTransitivelyContainsPackages) {
this.isDirectoryPackage = isDirectoryPackage;
this.subdirectoryTransitivelyContainsPackages = Preconditions.checkNotNull(