diff options
author | 2017-05-03 21:38:28 +0200 | |
---|---|---|
committer | 2017-05-04 13:13:32 +0200 | |
commit | bfdad902c89b101fd39a9795ea493ca5e0531052 (patch) | |
tree | 5512dabeb8dce04ff66d647dfab5b76752c9e775 /src/main/java/com/google/devtools/build/lib/cmdline | |
parent | c5672f8edb1cb9fb7806024706d776901d7d434e (diff) |
Make SkyKey an interface, and start the migration of not creating SkyKey wrapper objects: for OwnedArtifacts, which are the most numerous during builds, and for Labels for TransitiveTraversalValues, which are the most numerous during queries.
PiperOrigin-RevId: 154989520
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/BUILD | 1 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/Label.java | 16 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD index 06660e7213..5e3353cdce 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD +++ b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD @@ -18,6 +18,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib:skylarkinterface", "//src/main/java/com/google/devtools/build/lib:util", "//src/main/java/com/google/devtools/build/lib:vfs", + "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects", "//third_party:guava", "//third_party:jsr305", ], diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java index ef62fc1be8..3767ed721b 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java @@ -29,6 +29,8 @@ import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.StringCanonicalizer; import com.google.devtools.build.lib.util.StringUtilities; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.skyframe.SkyFunctionName; +import com.google.devtools.build.skyframe.SkyKey; import java.io.IOException; import java.io.InvalidObjectException; import java.io.ObjectInputStream; @@ -50,7 +52,7 @@ import javax.annotation.Nullable; ) @Immutable @ThreadSafe -public final class Label implements Comparable<Label>, Serializable, SkylarkPrintableValue { +public final class Label implements Comparable<Label>, Serializable, SkylarkPrintableValue, SkyKey { public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external"); public static final PathFragment EXTERNAL_PACKAGE_FILE_NAME = PathFragment.create("WORKSPACE"); public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__"; @@ -73,6 +75,8 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin PackageIdentifier.createInMainRepo(EXTERNAL_PACKAGE_NAME); public static final PathFragment EXTERNAL_PATH_PREFIX = PathFragment.create("external"); + public static final SkyFunctionName TRANSITIVE_TRAVERSAL = + SkyFunctionName.create("TRANSITIVE_TRAVERSAL"); private static final Interner<Label> LABEL_INTERNER = BlazeInterners.newWeakInterner(); @@ -511,6 +515,16 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin } @Override + public SkyFunctionName functionName() { + return TRANSITIVE_TRAVERSAL; + } + + @Override + public Label argument() { + return this; + } + + @Override public int hashCode() { return hashCode; } |