From 226b73fd48ea4e1fcbdd186c7796345f784045d7 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 22 Dec 2015 12:03:08 -0500 Subject: [PATCH] Don't call childNodes unless necessary (avoid extra _childNodes caching) `hasHiddenConnections` was calling it for all features, inluding points and vertices, causing _childNodes to have a lot of unnecessary keys added to it. --- js/id/core/graph.js | 10 ++++------ js/id/renderer/features.js | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/js/id/core/graph.js b/js/id/core/graph.js index 3252fc1c1..ce71c53aa 100644 --- a/js/id/core/graph.js +++ b/js/id/core/graph.js @@ -81,14 +81,12 @@ iD.Graph.prototype = { }, childNodes: function(entity) { - if (this._childNodes[entity.id]) - return this._childNodes[entity.id]; + if (this._childNodes[entity.id]) return this._childNodes[entity.id]; + if (!entity.nodes) return []; var nodes = []; - if (entity.nodes) { - for (var i = 0; i < entity.nodes.length; i++) { - nodes[i] = this.entity(entity.nodes[i]); - } + for (var i = 0; i < entity.nodes.length; i++) { + nodes[i] = this.entity(entity.nodes[i]); } if (iD.debug) Object.freeze(nodes); diff --git a/js/id/renderer/features.js b/js/id/renderer/features.js index 936a39303..e4ce089e5 100644 --- a/js/id/renderer/features.js +++ b/js/id/renderer/features.js @@ -378,7 +378,7 @@ iD.Features = function(context) { childNodes = [resolver.entity(entity.edge[0]), resolver.entity(entity.edge[1])]; connections = []; } else { - childNodes = resolver.childNodes(entity); + childNodes = entity.nodes ? resolver.childNodes(entity) : []; connections = features.getParents(entity, resolver, entity.geometry(resolver)); }