From e1ce6f88d57fc6060087da894f9a22c086150166 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 11 Oct 2016 14:25:32 +0300 Subject: [PATCH] Remove extra cache of nested classes from DeserializedClassDescriptor ClassDescriptor instances are already cached in ClassDeserializer --- .../descriptors/DeserializedClassDescriptor.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt index 2f8da82fc10..bdaba11ad06 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt @@ -282,18 +282,17 @@ class DeserializedClassDescriptor( internal val nestedClassNames = classProto.nestedClassNameList.map { c.nameResolver.getName(it) }.toSet() - private val nestedClassByName = c.storageManager.createMemoizedFunctionWithNullableValues { - name -> - if (name in nestedClassNames) { + private fun getClassDescriptor(name: Name): ClassDescriptor? = c.components.deserializeClass(classId.createNestedClassId(name)) - } - else null - } - fun findNestedClass(name: Name): ClassDescriptor? = nestedClassByName(name) + fun findNestedClass(name: Name): ClassDescriptor? = + if (name in nestedClassNames) { + getClassDescriptor(name) + } + else null fun all(): Collection = - nestedClassNames.mapNotNull { name -> nestedClassByName(name) } + nestedClassNames.mapNotNull(this::getClassDescriptor) } private inner class EnumEntryClassDescriptors {