Optimize GC usage of iterating over all elements of GroupedLists when we don't care about the group structure, and simplify the logic for prefetching old deps.
PiperOrigin-RevId: 187681887
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 76e8100..24dfeab 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -18,7 +18,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.util.GroupedList;
import com.google.devtools.build.lib.util.GroupedList.GroupedListHelper;
import com.google.devtools.build.skyframe.KeyToConsolidate.Op;
@@ -220,7 +219,7 @@
@Override
public synchronized Iterable<SkyKey> getDirectDeps() {
- return getGroupedDirectDeps().toSet();
+ return getGroupedDirectDeps().getAllElementsAsIterable();
}
/**
@@ -520,7 +519,7 @@
throws InterruptedException {
Preconditions.checkState(!isDone(), this);
if (!isDirty()) {
- return Iterables.concat(getTemporaryDirectDeps());
+ return getTemporaryDirectDeps().getAllElementsAsIterable();
} else {
// There may be duplicates here. Make sure everything is unique.
ImmutableSet.Builder<SkyKey> result = ImmutableSet.builder();