diff --git a/platform/core-api/src/com/intellij/openapi/util/Iconable.java b/platform/core-api/src/com/intellij/openapi/util/Iconable.java index 239fd86cabbc..987b827cef4b 100644 --- a/platform/core-api/src/com/intellij/openapi/util/Iconable.java +++ b/platform/core-api/src/com/intellij/openapi/util/Iconable.java @@ -15,12 +15,12 @@ */ package com.intellij.openapi.util; -import com.intellij.util.containers.HashMap; +import gnu.trove.TIntObjectHashMap; import org.intellij.lang.annotations.MagicConstant; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.Map; public interface Iconable { int ICON_FLAG_VISIBILITY = 0x0001; @@ -34,24 +34,20 @@ public interface Iconable { Icon getIcon(@IconFlags int flags); class LastComputedIcon { - private static final Key> LAST_COMPUTED_ICON = Key.create("lastComputedIcon"); + private static final Key> LAST_COMPUTED_ICON = Key.create("lastComputedIcon"); @Nullable - public static Icon get(UserDataHolder holder, int flags) { - Map map = holder.getUserData(LAST_COMPUTED_ICON); - return map != null ? map.get(flags) : null; + public static Icon get(@NotNull UserDataHolder holder, int flags) { + TIntObjectHashMap map = holder.getUserData(LAST_COMPUTED_ICON); + return map == null ? null : map.get(flags); } - public static void put(UserDataHolder holder, Icon icon, int flags) { - Map map = holder.getUserData(LAST_COMPUTED_ICON); + public static void put(@NotNull UserDataHolder holder, Icon icon, int flags) { + TIntObjectHashMap map = holder.getUserData(LAST_COMPUTED_ICON); if (map == null) { - map = new HashMap(); - holder.putUserData(LAST_COMPUTED_ICON, map); + map = ((UserDataHolderEx)holder).putUserDataIfAbsent(LAST_COMPUTED_ICON, new TIntObjectHashMap()); } - map.put(flags, icon); } } - - } \ No newline at end of file