FIR IDE: fix memory leak in scope provider
This commit is contained in:
+6
-5
@@ -40,12 +40,13 @@ import java.util.*
|
|||||||
|
|
||||||
internal class KtFirScopeProvider(
|
internal class KtFirScopeProvider(
|
||||||
analysisSession: KtAnalysisSession,
|
analysisSession: KtAnalysisSession,
|
||||||
private val builder: KtSymbolByFirBuilder,
|
builder: KtSymbolByFirBuilder,
|
||||||
private val project: Project,
|
private val project: Project,
|
||||||
firResolveState: FirModuleResolveState,
|
firResolveState: FirModuleResolveState,
|
||||||
override val token: ValidityToken,
|
override val token: ValidityToken,
|
||||||
) : KtScopeProvider(), ValidityTokenOwner {
|
) : KtScopeProvider(), ValidityTokenOwner {
|
||||||
override val analysisSession: KtAnalysisSession by weakRef(analysisSession)
|
override val analysisSession: KtAnalysisSession by weakRef(analysisSession)
|
||||||
|
private val builder by weakRef(builder)
|
||||||
private val firResolveState by weakRef(firResolveState)
|
private val firResolveState by weakRef(firResolveState)
|
||||||
private val firScopeStorage = FirScopeRegistry()
|
private val firScopeStorage = FirScopeRegistry()
|
||||||
|
|
||||||
@@ -133,13 +134,13 @@ internal class KtFirScopeProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun buildCompletionContextForEnclosingDeclaration(
|
private fun buildCompletionContextForEnclosingDeclaration(
|
||||||
originalFile: KtFile,
|
ktFile: KtFile,
|
||||||
positionInFakeFile: KtElement
|
positionInFakeFile: KtElement
|
||||||
): LowLevelFirApiFacadeForCompletion.FirCompletionContext {
|
): LowLevelFirApiFacadeForCompletion.FirCompletionContext {
|
||||||
val originalFirFile = LowLevelFirApiFacade.getFirFile(originalFile, firResolveState)
|
val firFile = LowLevelFirApiFacade.getFirFile(ktFile, firResolveState)
|
||||||
val declarationContext = EnclosingDeclarationContext.detect(originalFile, positionInFakeFile)
|
val declarationContext = EnclosingDeclarationContext.detect(positionInFakeFile)
|
||||||
|
|
||||||
return declarationContext.buildCompletionContext(originalFirFile, firResolveState)
|
return declarationContext.buildCompletionContext(firFile, firResolveState)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun convertToKtScope(firScope: FirScope): KtScope {
|
private fun convertToKtScope(firScope: FirScope): KtScope {
|
||||||
|
|||||||
Reference in New Issue
Block a user