From 0454a91c93ae8bee1a340f4093d3ede48795314c Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 28 Nov 2013 19:51:27 +0400 Subject: [PATCH] memory --- .../openapi/util/KeyedExtensionCollector.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java b/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java index 3ecebe5b56bb..6e4549edd380 100644 --- a/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java +++ b/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import com.intellij.openapi.extensions.*; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.util.ConcurrencyUtil; import com.intellij.util.KeyedLazyInstance; +import com.intellij.util.SmartList; import com.intellij.util.containers.ConcurrentHashMap; import com.intellij.util.containers.ContainerUtil; import gnu.trove.THashMap; @@ -129,9 +130,13 @@ public class KeyedExtensionCollector { for (Map.Entry> entry : myExplicitExtensions.entrySet()) { String key = entry.getKey(); if (keys.contains(key)) { - if (result == null) result = new ArrayList(); List list = entry.getValue(); - result.addAll(list); + if (result == null) { + result = new ArrayList(list); + } + else { + result.addAll(list); + } } } @@ -159,7 +164,7 @@ public class KeyedExtensionCollector { LOG.error(e); continue; } - if (result == null) result = new ArrayList(); + if (result == null) result = new SmartList(); result.add(instance); } }