Stop converting temporary direct deps to a set. In almost all cases, this conversion is unnecessary and wasteful. In the remaining cases, the set conversion can be explicit.
--
MOS_MIGRATED_REVID=122294939
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 7b885b8..56bcd05 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -415,10 +415,11 @@
public synchronized Iterable<SkyKey> getAllDirectDepsForIncompleteNode() {
Preconditions.checkState(!isDone(), this);
if (!isDirty()) {
- return getTemporaryDirectDeps();
+ return Iterables.concat(getTemporaryDirectDeps());
} else {
return Iterables.concat(
- getTemporaryDirectDeps(), buildingState.getAllRemainingDirtyDirectDeps());
+ Iterables.concat(getTemporaryDirectDeps()),
+ buildingState.getAllRemainingDirtyDirectDeps());
}
}
@@ -428,7 +429,7 @@
}
@Override
- public synchronized Set<SkyKey> getTemporaryDirectDeps() {
+ public synchronized GroupedList<SkyKey> getTemporaryDirectDeps() {
Preconditions.checkState(!isDone(), "temporary shouldn't be done: %s", this);
return buildingState.getDirectDepsForBuild();
}