IDEA-163730 string literal interning turned off by default

This commit is contained in:
Egor.Ushakov
2016-11-11 15:26:58 +03:00
parent fbb404203f
commit e96a30b72b
2 changed files with 4 additions and 1 deletions
@@ -26,6 +26,7 @@ import com.intellij.debugger.engine.evaluation.EvaluateExceptionUtil;
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl;
import com.intellij.debugger.impl.DebuggerUtilsEx;
import com.intellij.debugger.jdi.VirtualMachineProxyImpl;
import com.intellij.openapi.util.registry.Registry;
import com.sun.jdi.ClassType;
import com.sun.jdi.Method;
import com.sun.jdi.StringReference;
@@ -65,7 +66,7 @@ class LiteralEvaluator implements Evaluator {
return vm.mirrorOfStringLiteral(((String)myValue), () -> {
StringReference str = vm.mirrorOf((String)myValue);
// intern starting from jdk 7
if (vm.versionHigher("1.7")) {
if (Registry.is("debugger.intern.string.literals") && vm.versionHigher("1.7")) {
Method internMethod = ((ClassType)str.referenceType()).concreteMethodByName("intern", "()Ljava/lang/String;");
if (internMethod != null) {
return (StringReference)context.getDebugProcess().invokeMethod(context, str, internMethod, Collections.emptyList());