Reduce the impact of leaking Editor, Selection, & Cursor objects

Signed-off-by: Nathan Sobo <nathan@github.com>
This commit is contained in:
Max Brunsfeld
2016-12-30 16:43:44 -08:00
committed by Nathan Sobo
parent 26b128dd46
commit d0d187f36a
3 changed files with 17 additions and 3 deletions

View File

@@ -26,6 +26,7 @@ class Cursor extends Model
destroy: ->
@marker.destroy()
@marker = null
###
Section: Event Subscription

View File

@@ -26,6 +26,8 @@ class Selection extends Model
destroy: ->
@marker.destroy()
@marker = null
@decoration = null
isLastSelection: ->
this is @editor.getLastSelection()

View File

@@ -408,16 +408,27 @@ class TextEditor extends Model
@emitter.emit 'did-change', {}
destroyed: ->
@emitter.emit 'did-destroy'
@emitter = null
@disposables.dispose()
@displayLayer.destroy()
@disposables.dispose()
@displayLayer = null
@defaultMarkerLayer = null
@tokenizedBuffer.destroy()
@tokenizedBuffer = null
selection.destroy() for selection in @selections.slice()
@selectionsMarkerLayer.destroy()
@selections = null
@cursors = null
@selectionsMarkerLayer = null
@buffer.release()
@buffer = null
@decorationManager = null
@languageMode.destroy()
@languageMode = null
@gutterContainer.destroy()
@emitter.emit 'did-destroy'
@gutterContainer = null
@editorElement = null
@presenter = null
###
Section: Event Subscription