From 60ff2df5978938fe5416c93111d6f2ea677404c9 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Sat, 1 Nov 2014 13:38:24 +0200 Subject: [PATCH] Memory optimization: Do not retain LinkedHashSets in caches LinkedHashSets are replaced with tight ArrayLists --- .../resolve/java/lazy/descriptors/LazyJavaMemberScope.kt | 5 +++-- .../serialization/descriptors/DeserializedMemberScope.java | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaMemberScope.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaMemberScope.kt index a2540405f17..626c3a4b2e9 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaMemberScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaMemberScope.kt @@ -100,7 +100,7 @@ public abstract class LazyJavaMemberScope( } } - functions + ArrayList(functions) } data class MethodSignatureData( @@ -237,6 +237,7 @@ public abstract class LazyJavaMemberScope( computeNonDeclaredProperties(name, properties) + properties.trimToSize() properties } @@ -323,7 +324,7 @@ public abstract class LazyJavaMemberScope( addExtraDescriptors(result) - return result + return ArrayList(result) } protected open fun addExtraDescriptors(result: MutableSet) { diff --git a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.java b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.java index 81026e5b420..c1f4e76d381 100644 --- a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.java +++ b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.java @@ -135,7 +135,7 @@ public abstract class DeserializedMemberScope implements JetScope { private Collection computeFunctions(@NotNull Name name) { Collection descriptors = computeMembersByName(name, FUNCTION); computeNonDeclaredFunctions(name, descriptors); - return descriptors; + return new ArrayList(descriptors); } protected void computeNonDeclaredFunctions(@NotNull Name name, @NotNull Collection functions) { @@ -152,7 +152,7 @@ public abstract class DeserializedMemberScope implements JetScope { Collection descriptors = computeMembersByName(name, PROPERTY); computeNonDeclaredProperties(name, descriptors); //noinspection unchecked - return (Collection) descriptors; + return new ArrayList((Collection) descriptors); } protected void computeNonDeclaredProperties(@NotNull Name name, @NotNull Collection descriptors) {