From 3ee9aedd78ff1708b6f45e6ac0331c2f776aa8ac Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 19 Sep 2025 12:30:43 +0200 Subject: [PATCH] memory optimization: do not abuse user data GitOrigin-RevId: 08841665fbe014512628050a961ebd6b8225a74e --- .../intellij/openapi/editor/impl/RangeHighlighterImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java index 7e5061d95819..74e0d688e8e5 100644 --- a/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java +++ b/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java @@ -14,7 +14,6 @@ import com.intellij.openapi.editor.ex.RangeMarkerEx; import com.intellij.openapi.editor.markup.*; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.EmptyRunnable; -import com.intellij.openapi.util.Key; import com.intellij.util.BitUtil; import com.intellij.util.Consumer; import org.intellij.lang.annotations.MagicConstant; @@ -34,7 +33,7 @@ public sealed class RangeHighlighterImpl extends RangeMarkerImpl implements Rang private static final Logger LOG = Logger.getInstance(RangeHighlighterImpl.class); @SuppressWarnings({"InspectionUsingGrayColors", "UseJBColor"}) private static final Color NULL_COLOR = new Color(0, 0, 0); // must be a new instance to work as a sentinel - private static final Key VISIBLE_IF_FOLDED = Key.create("visible.folded"); + private boolean visibleIfFolded; private final MarkupModelImpl myModel; private TextAttributes myForcedTextAttributes; @@ -168,13 +167,13 @@ public sealed class RangeHighlighterImpl extends RangeMarkerImpl implements Rang @Override public void setVisibleIfFolded(boolean value) { if (isVisibleIfFolded() != value) { - runUnderWriteLock(() -> putUserData(VISIBLE_IF_FOLDED, value ? Boolean.TRUE : null)); + runUnderWriteLock(() -> visibleIfFolded = value); } } @Override public boolean isVisibleIfFolded() { - return VISIBLE_IF_FOLDED.isIn(this); + return visibleIfFolded; } private static int getFontStyle(@Nullable TextAttributes textAttributes) {