[KLIB] Fix memory leak in fake override resolver

This commit is contained in:
Roman Artemev
2020-07-31 15:37:55 +03:00
committed by romanart
parent e189cb1895
commit 876ee265f2
2 changed files with 7 additions and 0 deletions
@@ -158,6 +158,8 @@ class FakeOverrideBuilder(
fun provideFakeOverrides(klass: IrClass) {
buildFakeOverrideChainsForClass(klass)
propertyOverriddenSymbols.clear()
irOverridingUtil.clear()
haveFakeOverrides.add(klass)
}
}
@@ -59,6 +59,11 @@ class IrOverridingUtil(
private val IrOverridableMember.original get() = originals[this] ?: error("No original for ${this.render()}")
private val originalSuperTypes = mutableMapOf<IrOverridableMember, IrType>()
fun clear() {
originals.clear()
originalSuperTypes.clear()
}
private var IrOverridableMember.overriddenSymbols: List<IrSymbol>
get() = when (this) {
is IrSimpleFunction -> this.overriddenSymbols