[vcs] Cleanup listeners on LST release (IJPL-231568)

Space-RevId: 498e34bbb24e37225dce73bc5b0dd2baeda11878

GitOrigin-RevId: caa325431140dadfec32255c0f1f1414632332c6
This commit is contained in:
Ilia.Shulgin
2026-01-23 15:22:17 +00:00
committed by intellij-monorepo-bot
parent c41e778e02
commit fa8e49b309
2 changed files with 7 additions and 1 deletions
@@ -116,6 +116,7 @@ abstract class LineStatusTrackerBase<R : Range>(
isReleased = true
Disposer.dispose(disposable)
listeners.listeners.clear()
}
if (!ApplicationManager.getApplication().isDispatchThread || LOCK.isHeldByCurrentThread) {
@@ -145,6 +145,8 @@ class ChangelistsLocalLineStatusTracker internal constructor(project: Project,
private val undoableActions: WeakList<MyUndoableAction> = WeakList()
private val eventDispatcher = EventDispatcher.create(PartialLocalLineStatusTracker.Listener::class.java)
init {
defaultMarker = ChangeListMarker(changeListManager.defaultChangeList)
affectedChangeLists.add(defaultMarker.changelistId)
@@ -155,6 +157,10 @@ class ChangelistsLocalLineStatusTracker internal constructor(project: Project,
Disposer.register(disposable, Disposable { dropExistingUndoActions() })
}
Disposer.register(disposable) {
eventDispatcher.listeners.clear()
}
documentTracker.addHandler(PartialDocumentTrackerHandler())
assert(blocks.isEmpty())
}
@@ -1021,7 +1027,6 @@ class ChangelistsLocalLineStatusTracker internal constructor(project: Project,
}
private val eventDispatcher = EventDispatcher.create(PartialLocalLineStatusTracker.Listener::class.java)
override fun addListener(listener: PartialLocalLineStatusTracker.Listener, disposable: Disposable) {
eventDispatcher.addListener(listener, disposable)
}