Create a method to get the number of dep groups without getting all of the deps.
Saves a little bit of work/garbage during dirtiness checking.
RELNOTES: None.
PiperOrigin-RevId: 248234965
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
index 81e9dc6..408b448 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -207,12 +207,17 @@
}
@Override
- public synchronized Iterable<SkyKey> getDirectDeps() {
+ public Iterable<SkyKey> getDirectDeps() {
return GroupedList.compressedToIterable(getCompressedDirectDepsForDoneEntry());
}
+ @Override
+ public int getNumberOfDirectDepGroups() {
+ return GroupedList.numGroups(getCompressedDirectDepsForDoneEntry());
+ }
+
/** Returns the compressed {@link GroupedList} of direct deps. Can only be called when done. */
- public synchronized @GroupedList.Compressed Object getCompressedDirectDepsForDoneEntry() {
+ public final synchronized @GroupedList.Compressed Object getCompressedDirectDepsForDoneEntry() {
assertKeepDeps();
Preconditions.checkState(isDone(), "no deps until done. NodeEntry: %s", this);
Preconditions.checkNotNull(directDeps, "deps can't be null: %s", this);