diff options
author | 2017-07-19 13:48:53 +0200 | |
---|---|---|
committer | 2017-07-19 16:49:15 +0200 | |
commit | fbc3474575d0220e540db356a434ba22c52db907 (patch) | |
tree | e1a32b039b295d1c01e04225443f278c0dd7f51f /src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java | |
parent | 58e9629b06269dc9b1ba340318ae71c5beee5077 (diff) |
Remove TransitiveTargetValue.transitive{S,Uns}uccessfulPkgs
It was only used by GenQuery, for which we can use getTransitiveRootCauses()
and getTransitiveTargets() instead.
PiperOrigin-RevId: 162471592
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java | 50 |
1 files changed, 6 insertions, 44 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java index e603ca371c..843c531b3d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.skyframe; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; @@ -29,36 +28,28 @@ import com.google.devtools.build.skyframe.SkyValue; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import java.util.Set; import javax.annotation.Nullable; /** * A <i>transitive</i> target reference that, when built in skyframe, loads the entire * transitive closure of a target. * - * This will probably be unnecessary once other refactorings occur throughout the codebase - * which make loading/analysis interleaving more feasible, or we will migrate "blaze query" to - * use this to evaluate its Target graph. + * <p>Note that this class drops transitive targets during serialization! */ @Immutable @ThreadSafe public class TransitiveTargetValue implements SkyValue { - // Non-final for serialization purposes. - private NestedSet<PackageIdentifier> transitiveSuccessfulPkgs; - private NestedSet<PackageIdentifier> transitiveUnsuccessfulPkgs; private NestedSet<Label> transitiveTargets; @Nullable private NestedSet<Label> transitiveRootCauses; @Nullable private NoSuchTargetException errorLoadingTarget; private NestedSet<Class<? extends BuildConfiguration.Fragment>> transitiveConfigFragments; - private TransitiveTargetValue(NestedSet<PackageIdentifier> transitiveSuccessfulPkgs, - NestedSet<PackageIdentifier> transitiveUnsuccessfulPkgs, NestedSet<Label> transitiveTargets, + private TransitiveTargetValue( + NestedSet<Label> transitiveTargets, @Nullable NestedSet<Label> transitiveRootCauses, @Nullable NoSuchTargetException errorLoadingTarget, NestedSet<Class<? extends BuildConfiguration.Fragment>> transitiveConfigFragments) { - this.transitiveSuccessfulPkgs = transitiveSuccessfulPkgs; - this.transitiveUnsuccessfulPkgs = transitiveUnsuccessfulPkgs; this.transitiveTargets = transitiveTargets; this.transitiveRootCauses = transitiveRootCauses; this.errorLoadingTarget = errorLoadingTarget; @@ -66,14 +57,6 @@ public class TransitiveTargetValue implements SkyValue { } private void writeObject(ObjectOutputStream out) throws IOException { - // It helps to flatten the transitiveSuccessfulPkgs nested set as it has lots of duplicates. - Set<PackageIdentifier> successfulPkgs = transitiveSuccessfulPkgs.toSet(); - out.writeInt(successfulPkgs.size()); - for (PackageIdentifier pkg : successfulPkgs) { - out.writeObject(pkg); - } - - out.writeObject(transitiveUnsuccessfulPkgs); // Deliberately do not write out transitiveTargets. There is a lot of those and they drive // serialization costs through the roof, both in terms of space and of time. // TODO(bazel-team): Deal with this properly once we have efficient serialization of NestedSets. @@ -84,13 +67,6 @@ public class TransitiveTargetValue implements SkyValue { @SuppressWarnings("unchecked") private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { - int successfulPkgCount = in.readInt(); - NestedSetBuilder<PackageIdentifier> pkgs = NestedSetBuilder.stableOrder(); - for (int i = 0; i < successfulPkgCount; i++) { - pkgs.add((PackageIdentifier) in.readObject()); - } - transitiveSuccessfulPkgs = pkgs.build(); - transitiveUnsuccessfulPkgs = (NestedSet<PackageIdentifier>) in.readObject(); // TODO(bazel-team): Deal with transitiveTargets properly. transitiveTargets = NestedSetBuilder.emptySet(Order.STABLE_ORDER); transitiveRootCauses = (NestedSet<Label>) in.readObject(); @@ -100,21 +76,17 @@ public class TransitiveTargetValue implements SkyValue { } static TransitiveTargetValue unsuccessfulTransitiveLoading( - NestedSet<PackageIdentifier> transitiveSuccessfulPkgs, - NestedSet<PackageIdentifier> transitiveUnsuccessfulPkgs, NestedSet<Label> transitiveTargets, + NestedSet<Label> transitiveTargets, NestedSet<Label> rootCauses, @Nullable NoSuchTargetException errorLoadingTarget, NestedSet<Class<? extends BuildConfiguration.Fragment>> transitiveConfigFragments) { - return new TransitiveTargetValue(transitiveSuccessfulPkgs, transitiveUnsuccessfulPkgs, + return new TransitiveTargetValue( transitiveTargets, rootCauses, errorLoadingTarget, transitiveConfigFragments); } static TransitiveTargetValue successfulTransitiveLoading( - NestedSet<PackageIdentifier> transitiveSuccessfulPkgs, - NestedSet<PackageIdentifier> transitiveUnsuccessfulPkgs, NestedSet<Label> transitiveTargets, NestedSet<Class<? extends BuildConfiguration.Fragment>> transitiveConfigFragments) { - return new TransitiveTargetValue(transitiveSuccessfulPkgs, transitiveUnsuccessfulPkgs, - transitiveTargets, null, null, transitiveConfigFragments); + return new TransitiveTargetValue(transitiveTargets, null, null, transitiveConfigFragments); } /** Returns the error, if any, from loading the target. */ @@ -123,16 +95,6 @@ public class TransitiveTargetValue implements SkyValue { return errorLoadingTarget; } - /** Returns the packages that were transitively successfully loaded. */ - public NestedSet<PackageIdentifier> getTransitiveSuccessfulPackages() { - return transitiveSuccessfulPkgs; - } - - /** Returns the packages that were transitively successfully loaded. */ - public NestedSet<PackageIdentifier> getTransitiveUnsuccessfulPackages() { - return transitiveUnsuccessfulPkgs; - } - /** Returns the targets that were transitively loaded. */ public NestedSet<Label> getTransitiveTargets() { return transitiveTargets; |