aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/cmdline
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-05-03 21:38:28 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-05-04 13:13:32 +0200
commitbfdad902c89b101fd39a9795ea493ca5e0531052 (patch)
tree5512dabeb8dce04ff66d647dfab5b76752c9e775 /src/main/java/com/google/devtools/build/lib/cmdline
parentc5672f8edb1cb9fb7806024706d776901d7d434e (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/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/Label.java16
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;
}