From 5ebb17c2e8d800b1191ba12e21840fc4208e2012 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Mon, 23 Jun 2014 18:03:19 -0700 Subject: [PATCH] Be defensive when iterating through decorations --- src/display-buffer.coffee | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/display-buffer.coffee b/src/display-buffer.coffee index b6e2a3931..7d926c6a1 100644 --- a/src/display-buffer.coffee +++ b/src/display-buffer.coffee @@ -762,8 +762,12 @@ class DisplayBuffer extends Model @decorationMarkerChangedSubscriptions[marker.id] ?= @subscribe marker, 'changed', (event) => decorations = @decorationsByMarkerId[marker.id] - for decoration in decorations - @emit 'decoration-changed', marker, decoration, event + + # Why check existence? Markers may get destroyed or decorations removed + # in the change handler. Bookmarks does this. + if decorations? + for decoration in decorations + @emit 'decoration-changed', marker, decoration, event @decorationsByMarkerId[marker.id] ?= [] @decorationsByMarkerId[marker.id].push(decoration)