From d0c58689f2ea959dd03117332f3e16c64aa4439c Mon Sep 17 00:00:00 2001 From: "Vitaliy.Bibaev" Date: Thu, 21 Mar 2019 13:13:37 +0300 Subject: [PATCH] [memory-agent] IDEA-CR-44694 Simplify lifetime of MemoryAgent instances (make capabilities object thread safe) --- .../debugger/memory/agent/MemoryAgentCapabilities.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentCapabilities.java b/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentCapabilities.java index a02e527238cf..296377d1843e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentCapabilities.java +++ b/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentCapabilities.java @@ -3,20 +3,18 @@ package com.intellij.debugger.memory.agent; import org.jetbrains.annotations.NotNull; -import java.util.Collections; import java.util.EnumSet; import java.util.Set; public class MemoryAgentCapabilities { - static final MemoryAgentCapabilities DISABLED = new MemoryAgentCapabilities(false, Collections.emptySet()); + static final MemoryAgentCapabilities DISABLED = new MemoryAgentCapabilities(false, EnumSet.noneOf(Capability.class)); private final boolean myIsLoaded; private final Set myCapabilities; - private MemoryAgentCapabilities(boolean isLoaded, @NotNull Set capabilitySet) { + private MemoryAgentCapabilities(boolean isLoaded, @NotNull EnumSet capabilitySet) { myIsLoaded = isLoaded; - myCapabilities = EnumSet.noneOf(Capability.class); - myCapabilities.addAll(capabilitySet); + myCapabilities = EnumSet.copyOf(capabilitySet); } public boolean isLoaded() { @@ -51,7 +49,7 @@ public class MemoryAgentCapabilities { } static class Builder { - private final Set myCapabilities = EnumSet.noneOf(Capability.class); + private final EnumSet myCapabilities = EnumSet.noneOf(Capability.class); public Builder setCanFindGcRoots(boolean value) { return update(Capability.GC_ROOTS, value);