[IR SERIALIZATION] Link depend modules lazily
This commit is contained in:
+3
-2
@@ -129,7 +129,9 @@ abstract class KotlinIrLinker(
|
|||||||
|
|
||||||
private val moduleDeserializationState = DeserializationState.ModuleDeserializationState(this)
|
private val moduleDeserializationState = DeserializationState.ModuleDeserializationState(this)
|
||||||
private val moduleReversedFileIndex = mutableMapOf<UniqId, IrDeserializerForFile>()
|
private val moduleReversedFileIndex = mutableMapOf<UniqId, IrDeserializerForFile>()
|
||||||
private val moduleDependencies = mutableListOf<IrModuleDeserializer>()
|
private val moduleDependencies by lazy {
|
||||||
|
moduleDescriptor.allDependencyModules.filter { it != moduleDescriptor }.map { deserializersForModules[it]!! }
|
||||||
|
}
|
||||||
|
|
||||||
// This is a heavy initializer
|
// This is a heavy initializer
|
||||||
val module = deserializeIrModuleHeader()
|
val module = deserializeIrModuleHeader()
|
||||||
@@ -460,7 +462,6 @@ abstract class KotlinIrLinker(
|
|||||||
files.add(deserializeIrFile(ProtoFile.parseFrom(readFile(moduleDescriptor, i), newInstance()), i))
|
files.add(deserializeIrFile(ProtoFile.parseFrom(readFile(moduleDescriptor, i), newInstance()), i))
|
||||||
}
|
}
|
||||||
|
|
||||||
moduleDescriptor.allDependencyModules.filter { it != moduleDescriptor }.mapTo(moduleDependencies) { deserializersForModules[it]!! }
|
|
||||||
|
|
||||||
return IrModuleFragmentImpl(moduleDescriptor, builtIns, files)
|
return IrModuleFragmentImpl(moduleDescriptor, builtIns, files)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user