diff options
author | 2015-10-22 22:48:11 +0000 | |
---|---|---|
committer | 2015-10-23 14:56:02 +0000 | |
commit | 8cb6f7b8a046cbebf64137a5befdc41b8177305d (patch) | |
tree | 8d64f1dc765cb027aa4ebac197cb616df6180775 /src/main | |
parent | e1bd5dabe8deb03e40d3754ab0c0b237994e4f04 (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.java | 32 |
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; } + } |