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