From 69d5b63e9dbc6d3f97f8a145533ae67515563a94 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 3 Mar 2017 05:58:03 -0700 Subject: [PATCH] Replace layerUpdateDisposablesByLayerId with a weak map keyed by layer --- src/decoration-manager.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/decoration-manager.js b/src/decoration-manager.js index edc373929..16dd1f921 100644 --- a/src/decoration-manager.js +++ b/src/decoration-manager.js @@ -13,7 +13,7 @@ class DecorationManager { this.overlayDecorations = new Set() this.layerDecorationsByMarkerLayer = new Map() this.decorationCountsByLayer = new Map() - this.layerUpdateDisposablesByLayerId = {} + this.layerUpdateDisposablesByLayer = new WeakMap() } observeDecorations (callback) { @@ -234,16 +234,15 @@ class DecorationManager { const newCount = (this.decorationCountsByLayer.get(layer) || 0) + 1 this.decorationCountsByLayer.set(layer, newCount) if (newCount === 1) { - this.layerUpdateDisposablesByLayerId[layer.id] = layer.onDidUpdate(this.emitDidUpdateDecorations.bind(this)) + this.layerUpdateDisposablesByLayer.set(layer, layer.onDidUpdate(this.emitDidUpdateDecorations.bind(this))) } } unobserveDecoratedLayer (layer) { const newCount = this.decorationCountsByLayer.get(layer) - 1 if (newCount === 0) { - this.layerUpdateDisposablesByLayerId[layer.id].dispose() + this.layerUpdateDisposablesByLayer.get(layer).dispose() this.decorationCountsByLayer.delete(layer) - delete this.layerUpdateDisposablesByLayerId[layer.id] } else { this.decorationCountsByLayer.set(layer, newCount) }