From 1b49c076d7cb8dc2cc7933ccc2f7723f0744c596 Mon Sep 17 00:00:00 2001 From: "Artem.Bukhonov" Date: Mon, 4 Nov 2024 20:19:19 +0100 Subject: [PATCH] LLM-12328 Use a plugin scope when running a `ProjectActivity` when listening for `extensionAdded` to avoid memory leaks GitOrigin-RevId: 5ab2aeab3d9f3e1ce28dcd2a0e118321670da800 --- .../src/com/intellij/ide/startup/impl/StartupManagerImpl.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt b/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt index dfd035b4e791..0a86c72039c6 100644 --- a/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt +++ b/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt @@ -80,12 +80,14 @@ open class StartupManagerImpl(private val project: Project, private val coroutin val startupManager = getInstance(project) as StartupManagerImpl when (extension) { is ProjectActivity -> { - startupManager.coroutineScope.launch { + val pluginScope = createActivityScope(project, extension.javaClass) + pluginScope.launch { extension.execute(project) } } is DumbAware -> { - startupManager.coroutineScope.launch { + val pluginScope = createActivityScope(project, extension.javaClass) + pluginScope.launch { @Suppress("UsagesOfObsoleteApi") startupManager.runOldActivity(extension as StartupActivity) }