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? =
this.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)
?.let { kotlinMppModel ->
KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] as? KotlinMPPGradleModelImpl ?: KotlinMPPGradleModelImpl(
kotlinMppModel,
KotlinMPPGradleProjectResolver.proxyObjectCloningCache
).also {
KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] = it
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)
?.let { kotlinMppModel ->
KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] as? KotlinMPPGradleModelImpl
?: KotlinMPPGradleModelImpl(
kotlinMppModel,
KotlinMPPGradleProjectResolver.proxyObjectCloningCache
).also {
KotlinMPPGradleProjectResolver.proxyObjectCloningCache[kotlinMppModel] = it
}
}
}
} else {
mppModel
}
}