[platform] Use correct synchronization object in ExtensionPointImpl.maskAll

GitOrigin-RevId: 92160b8d72d352876ce5935abda1ce6df9cc48db
This commit is contained in:
Vladislav Rassokhin
2024-05-22 13:13:48 +02:00
committed by intellij-monorepo-bot
parent bf2c15502b
commit 702470bae1

View File

@@ -490,27 +490,24 @@ sealed class ExtensionPointImpl<T : Any>(@JvmField val name: String,
clearUserCache()
Disposer.register(parentDisposable, object : Disposable {
@TestOnly
override fun dispose() {
synchronized(this) {
POINTS_IN_READONLY_MODE!!.remove(this@ExtensionPointImpl)
cachedExtensions = oldList
cachedExtensionsAsArray = null
adapters = oldAdapters
adaptersAreSorted = oldAdaptersAreSorted
Disposer.register(parentDisposable) {
synchronized(this@ExtensionPointImpl) {
POINTS_IN_READONLY_MODE!!.remove(this@ExtensionPointImpl)
cachedExtensions = oldList
cachedExtensionsAsArray = null
adapters = oldAdapters
adaptersAreSorted = oldAdaptersAreSorted
val listeners = listeners
if (fireEvents && !listeners.isEmpty()) {
doNotifyListeners(isRemoved = true, extensions = newList, listeners = listeners)
if (oldList != null) {
doNotifyListeners(isRemoved = false, extensions = oldList, listeners = listeners)
}
val listeners = listeners
if (fireEvents && !listeners.isEmpty()) {
doNotifyListeners(isRemoved = true, extensions = newList, listeners = listeners)
if (oldList != null) {
doNotifyListeners(isRemoved = false, extensions = oldList, listeners = listeners)
}
clearUserCache()
}
clearUserCache()
}
})
}
}
@TestOnly