[KLIB] Fix memory leak in fake override resolver
This commit is contained in:
+2
@@ -158,6 +158,8 @@ class FakeOverrideBuilder(
|
|||||||
|
|
||||||
fun provideFakeOverrides(klass: IrClass) {
|
fun provideFakeOverrides(klass: IrClass) {
|
||||||
buildFakeOverrideChainsForClass(klass)
|
buildFakeOverrideChainsForClass(klass)
|
||||||
|
propertyOverriddenSymbols.clear()
|
||||||
|
irOverridingUtil.clear()
|
||||||
haveFakeOverrides.add(klass)
|
haveFakeOverrides.add(klass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -59,6 +59,11 @@ class IrOverridingUtil(
|
|||||||
private val IrOverridableMember.original get() = originals[this] ?: error("No original for ${this.render()}")
|
private val IrOverridableMember.original get() = originals[this] ?: error("No original for ${this.render()}")
|
||||||
private val originalSuperTypes = mutableMapOf<IrOverridableMember, IrType>()
|
private val originalSuperTypes = mutableMapOf<IrOverridableMember, IrType>()
|
||||||
|
|
||||||
|
fun clear() {
|
||||||
|
originals.clear()
|
||||||
|
originalSuperTypes.clear()
|
||||||
|
}
|
||||||
|
|
||||||
private var IrOverridableMember.overriddenSymbols: List<IrSymbol>
|
private var IrOverridableMember.overriddenSymbols: List<IrSymbol>
|
||||||
get() = when (this) {
|
get() = when (this) {
|
||||||
is IrSimpleFunction -> this.overriddenSymbols
|
is IrSimpleFunction -> this.overriddenSymbols
|
||||||
|
|||||||
Reference in New Issue
Block a user