mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
StringInterner is enough, we don't need to use WeakStringInterner
This commit is contained in:
+5
-8
@@ -43,7 +43,7 @@ import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.WeakStringInterner;
|
||||
import com.intellij.util.containers.StringInterner;
|
||||
import com.intellij.util.graph.CachingSemiGraph;
|
||||
import com.intellij.util.graph.DFSTBuilder;
|
||||
import com.intellij.util.graph.GraphGenerator;
|
||||
@@ -267,15 +267,12 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
|
||||
((SeverityProvider)getProfileManager()).getOwnSeverityRegistrar().readExternal(highlightElement);
|
||||
}
|
||||
|
||||
WeakStringInterner interner = new WeakStringInterner();
|
||||
for (final Object o : element.getChildren(INSPECTION_TOOL_TAG)) {
|
||||
StringInterner interner = new StringInterner();
|
||||
for (Element toolElement : element.getChildren(INSPECTION_TOOL_TAG)) {
|
||||
// make clone to avoid retaining memory via o.parent pointers
|
||||
Element toolElement = ((Element)o).clone();
|
||||
toolElement = toolElement.clone();
|
||||
JDOMUtil.internElement(toolElement, interner);
|
||||
|
||||
String toolClassName = toolElement.getAttributeValue(CLASS_TAG);
|
||||
|
||||
myDeinstalledInspectionsSettings.put(toolClassName, toolElement);
|
||||
myDeinstalledInspectionsSettings.put(toolElement.getAttributeValue(CLASS_TAG), toolElement);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.openapi.util.NullableLazyValue;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import com.intellij.util.containers.StringInterner;
|
||||
import com.intellij.util.containers.WeakStringInterner;
|
||||
@@ -120,19 +121,19 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static List<Element> copyElements(final Element[] elements, final WeakStringInterner interner) {
|
||||
if (elements != null) {
|
||||
List<Element> result = new ArrayList<Element>();
|
||||
for (Element extensionsRoot : elements) {
|
||||
for (final Object o : extensionsRoot.getChildren()) {
|
||||
Element element = (Element)o;
|
||||
JDOMUtil.internElement(element, interner);
|
||||
result.add(element);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
private static List<Element> copyElements(@Nullable Element[] elements, StringInterner interner) {
|
||||
if (elements == null || elements.length == 0) {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
|
||||
List<Element> result = new SmartList<Element>();
|
||||
for (Element extensionsRoot : elements) {
|
||||
for (Element element : extensionsRoot.getChildren()) {
|
||||
JDOMUtil.internElement(element, interner);
|
||||
result.add(element);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings({"HardCodedStringLiteral"})
|
||||
@@ -167,7 +168,7 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor {
|
||||
public void readExternal(@NotNull Document document, @NotNull URL url, boolean ignoreMissingInclude) throws InvalidDataException, FileNotFoundException {
|
||||
document = JDOMXIncluder.resolve(document, url.toExternalForm(), ignoreMissingInclude);
|
||||
Element rootElement = document.getRootElement();
|
||||
JDOMUtil.internElement(rootElement, new WeakStringInterner());
|
||||
JDOMUtil.internElement(rootElement, new StringInterner());
|
||||
readExternal(document.getRootElement());
|
||||
}
|
||||
|
||||
@@ -267,7 +268,7 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor {
|
||||
if (myProjectComponents == null) myProjectComponents = ComponentConfig.EMPTY_ARRAY;
|
||||
if (myModuleComponents == null) myModuleComponents = ComponentConfig.EMPTY_ARRAY;
|
||||
|
||||
WeakStringInterner interner = new WeakStringInterner();
|
||||
StringInterner interner = new StringInterner();
|
||||
List<Element> extensions = copyElements(pluginBean.extensions, interner);
|
||||
if (extensions != null) {
|
||||
myExtensions = new MultiMap<String, Element>();
|
||||
|
||||
+2
-3
@@ -65,7 +65,7 @@ public class RunConfigurationExtensionsManager<U extends RunConfigurationBase, T
|
||||
if (!found) {
|
||||
List<Element> copy = new ArrayList<Element>(children.size());
|
||||
for (Element child : children) {
|
||||
Element clone = (Element)child.clone();
|
||||
Element clone = child.clone();
|
||||
JDOMUtil.internElement(clone, myInterner);
|
||||
copy.add(clone);
|
||||
}
|
||||
@@ -87,8 +87,7 @@ public class RunConfigurationExtensionsManager<U extends RunConfigurationBase, T
|
||||
final List<Element> elements = configuration.getCopyableUserData(RUN_EXTENSIONS);
|
||||
if (elements != null) {
|
||||
for (Element el : elements) {
|
||||
final String name = el.getAttributeValue(getIdAttrName());
|
||||
map.put(name, (Element)el.clone());
|
||||
map.put(el.getAttributeValue(getIdAttrName()), el.clone());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-3
@@ -23,7 +23,8 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.extensions.ExtensionException;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.containers.WeakStringInterner;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.util.containers.StringInterner;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -229,7 +230,7 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
myConfiguration.readExternal(element);
|
||||
List<Element> runners = element.getChildren(RUNNER_ELEMENT);
|
||||
myUnloadedRunnerSettings = null;
|
||||
WeakStringInterner interner = new WeakStringInterner();
|
||||
StringInterner interner = new StringInterner();
|
||||
for (final Element runnerElement : runners) {
|
||||
String id = runnerElement.getAttributeValue(RUNNER_ID);
|
||||
ProgramRunner runner = RunnerRegistry.getInstance().findRunnerById(id);
|
||||
@@ -241,7 +242,7 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
myRunnerSettings.put(runner, settings);
|
||||
}
|
||||
else {
|
||||
if (myUnloadedRunnerSettings == null) myUnloadedRunnerSettings = new ArrayList<Element>(1);
|
||||
if (myUnloadedRunnerSettings == null) myUnloadedRunnerSettings = new SmartList<Element>();
|
||||
JDOMUtil.internElement(runnerElement, interner);
|
||||
myUnloadedRunnerSettings.add(runnerElement);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user