aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Miguel Alcon Pinto <malcon@google.com>2015-10-22 22:48:11 +0000
committerGravatar John Field <jfield@google.com>2015-10-23 14:56:02 +0000
commit8cb6f7b8a046cbebf64137a5befdc41b8177305d (patch)
tree8d64f1dc765cb027aa4ebac197cb616df6180775 /src/main
parente1bd5dabe8deb03e40d3754ab0c0b237994e4f04 (diff)
Avoid the usage of Maps.transformValues since it is lazy and keeps a reference to the original map. This made us to keep a reference to the whole node but we are only interested on the rdeps.
-- MOS_MIGRATED_REVID=106098938
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/DelegatingWalkableGraph.java32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/DelegatingWalkableGraph.java b/src/main/java/com/google/devtools/build/skyframe/DelegatingWalkableGraph.java
index 82cad233fb..8555176a61 100644
--- a/src/main/java/com/google/devtools/build/skyframe/DelegatingWalkableGraph.java
+++ b/src/main/java/com/google/devtools/build/skyframe/DelegatingWalkableGraph.java
@@ -21,6 +21,7 @@ import com.google.common.collect.Maps;
import java.util.HashMap;
import java.util.Map;
+import java.util.Map.Entry;
import javax.annotation.Nullable;
@@ -112,29 +113,24 @@ public class DelegatingWalkableGraph implements WalkableGraph {
return errorInfo == null ? null : errorInfo.getException();
}
- private static final Function<NodeEntry, Iterable<SkyKey>> GET_DIRECT_DEPS_FUNCTION =
- new Function<NodeEntry, Iterable<SkyKey>>() {
- @Override
- public Iterable<SkyKey> apply(NodeEntry entry) {
- return entry.getDirectDeps();
- }
- };
-
@Override
public Map<SkyKey, Iterable<SkyKey>> getDirectDeps(Iterable<SkyKey> keys) {
- return Maps.transformValues(getEntries(keys, thinGraph), GET_DIRECT_DEPS_FUNCTION);
+ Map<SkyKey, NodeEntry> entries = getEntries(keys, thinGraph);
+ Map<SkyKey, Iterable<SkyKey>> result = new HashMap<>(entries.size());
+ for (Entry<SkyKey, NodeEntry> entry : entries.entrySet()) {
+ result.put(entry.getKey(), entry.getValue().getDirectDeps());
+ }
+ return result;
}
- private static final Function<NodeEntry, Iterable<SkyKey>> GET_REVERSE_DEPS_FUNCTION =
- new Function<NodeEntry, Iterable<SkyKey>>() {
- @Override
- public Iterable<SkyKey> apply(NodeEntry entry) {
- return entry.getReverseDeps();
- }
- };
-
@Override
public Map<SkyKey, Iterable<SkyKey>> getReverseDeps(Iterable<SkyKey> keys) {
- return Maps.transformValues(getEntries(keys, thinGraph), GET_REVERSE_DEPS_FUNCTION);
+ Map<SkyKey, NodeEntry> entries = getEntries(keys, thinGraph);
+ Map<SkyKey, Iterable<SkyKey>> result = new HashMap<>(entries.size());
+ for (Entry<SkyKey, NodeEntry> entry : entries.entrySet()) {
+ result.put(entry.getKey(), entry.getValue().getReverseDeps());
+ }
+ return result;
}
+
}