Do not create deep copy for MPP project is model is not a proxy

This commit is contained in:
Andrey Uskov
2019-10-07 15:32:18 +03:00
parent f567df283e
commit 74f4a1357f
@@ -956,14 +956,21 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
} }
} }
fun ProjectResolverContext.getMppModel(gradleModule: IdeaModule): KotlinMPPGradleModel? = fun ProjectResolverContext.getMppModel(gradleModule: IdeaModule): KotlinMPPGradleModel? {
val mppModel = this.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)
return if (mppModel is Proxy) {
this.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java) this.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)
?.let { kotlinMppModel -> ?.let { kotlinMppModel ->
KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] as? KotlinMPPGradleModelImpl ?: KotlinMPPGradleModelImpl( KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] as? KotlinMPPGradleModelImpl
?: KotlinMPPGradleModelImpl(
kotlinMppModel, kotlinMppModel,
KotlinMPPGradleProjectResolver.proxyObjectCloningCache KotlinMPPGradleProjectResolver.proxyObjectCloningCache
).also { ).also {
KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] = it KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] = it
} }
} }
} else {
mppModel
}
}