From 364dcd30c88ae0b4c3903a64922dfcca0bda958f Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 15 Nov 2023 14:53:41 +0100 Subject: [PATCH] [LC] optimize String allocations in `org.jetbrains.kotlin.asJava.LightClassUtil.isMangled` ^KT-63486 fixed --- .../src/org/jetbrains/kotlin/asJava/LightClassUtil.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt index 3a0a533cb22..2f3616438b7 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt @@ -71,7 +71,10 @@ object LightClassUtil { private fun isMangled(wrapperName: @NlsSafe String, prefix: String): Boolean { //see KT-54803 for other mangling strategies - return wrapperName.startsWith("$prefix$") + // A memory optimization for `wrapperName.startsWith("$prefix$")`, see KT-63486 + return wrapperName.length > prefix.length + && wrapperName[prefix.length] == '$' + && wrapperName.startsWith(prefix) } fun getLightFieldForCompanionObject(companionObject: KtClassOrObject): PsiField? {