mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[debugger] dropped ClassesByName cache creation - it is not needed any more, we have fast classesByName in jb-jdi
GitOrigin-RevId: 43529dea80f40a8c972a09d20c63e843b33086be
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d1ac3c1373
commit
9d21d0c476
@@ -110,7 +110,6 @@ public final class AsyncStacksUtils {
|
||||
evaluationContext);
|
||||
if (value != null) {
|
||||
List<StackFrameItem> res = new ArrayList<>();
|
||||
ClassesByNameProvider classesByName = ClassesByNameProvider.createCache(virtualMachineProxy.allClasses());
|
||||
try (DataInputStream dis = new DataInputStream(new ByteArrayInputStream(value.getBytes(StandardCharsets.ISO_8859_1)))) {
|
||||
while (dis.available() > 0) {
|
||||
StackFrameItem item = null;
|
||||
@@ -119,7 +118,7 @@ public final class AsyncStacksUtils {
|
||||
String methodName = dis.readUTF();
|
||||
int line = dis.readInt();
|
||||
Location location =
|
||||
DebuggerUtilsEx.findOrCreateLocation(virtualMachineProxy.getVirtualMachine(), classesByName, className, methodName, line);
|
||||
DebuggerUtilsEx.findOrCreateLocation(virtualMachineProxy.getVirtualMachine(), className, methodName, line);
|
||||
item = new StackFrameItem(location, null);
|
||||
}
|
||||
res.add(item);
|
||||
|
||||
@@ -167,14 +167,13 @@ public final class CollectionBreakpointUtils {
|
||||
String message,
|
||||
VirtualMachineProxyImpl virtualMachineProxy) {
|
||||
List<StackFrameItem> items = new ArrayList<>();
|
||||
ClassesByNameProvider classesByName = ClassesByNameProvider.createCache(virtualMachineProxy.allClasses());
|
||||
try (DataInputStream dis = new DataInputStream(new ByteArrayInputStream(message.getBytes(StandardCharsets.ISO_8859_1)))) {
|
||||
while (dis.available() > 0) {
|
||||
String className = dis.readUTF();
|
||||
String methodName = dis.readUTF();
|
||||
int line = dis.readInt();
|
||||
Location location =
|
||||
DebuggerUtilsEx.findOrCreateLocation(virtualMachineProxy.getVirtualMachine(), classesByName, className, methodName, line);
|
||||
DebuggerUtilsEx.findOrCreateLocation(virtualMachineProxy.getVirtualMachine(), className, methodName, line);
|
||||
StackFrameItem item = new StackFrameItem(location, null);
|
||||
items.add(item);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,10 @@ import com.intellij.debugger.engine.evaluation.*;
|
||||
import com.intellij.debugger.engine.evaluation.expression.ExpressionEvaluator;
|
||||
import com.intellij.debugger.engine.evaluation.expression.UnBoxingEvaluator;
|
||||
import com.intellij.debugger.engine.requests.RequestManagerImpl;
|
||||
import com.intellij.debugger.jdi.*;
|
||||
import com.intellij.debugger.jdi.GeneratedLocation;
|
||||
import com.intellij.debugger.jdi.GeneratedReferenceType;
|
||||
import com.intellij.debugger.jdi.JvmtiError;
|
||||
import com.intellij.debugger.jdi.VirtualMachineProxyImpl;
|
||||
import com.intellij.debugger.memory.ui.CollectionHistoryView;
|
||||
import com.intellij.debugger.requests.Requestor;
|
||||
import com.intellij.debugger.ui.breakpoints.Breakpoint;
|
||||
@@ -1194,16 +1197,8 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Location findOrCreateLocation(@NotNull VirtualMachine virtualMachine, StackTraceElement stackTraceElement) {
|
||||
return findOrCreateLocation(virtualMachine, virtualMachine::classesByName, stackTraceElement);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Location findOrCreateLocation(@NotNull VirtualMachine virtualMachine,
|
||||
@NotNull ClassesByNameProvider classesByName,
|
||||
StackTraceElement stackTraceElement) {
|
||||
public static Location findOrCreateLocation(@NotNull VirtualMachine virtualMachine, @NotNull StackTraceElement stackTraceElement) {
|
||||
return findOrCreateLocation(virtualMachine,
|
||||
classesByName,
|
||||
stackTraceElement.getClassName(),
|
||||
stackTraceElement.getMethodName(),
|
||||
stackTraceElement.getLineNumber());
|
||||
@@ -1214,16 +1209,7 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils {
|
||||
@NotNull String className,
|
||||
@NotNull String methodName,
|
||||
int line) {
|
||||
return findOrCreateLocation(virtualMachine, virtualMachine::classesByName, className, methodName, line);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Location findOrCreateLocation(@NotNull VirtualMachine virtualMachine,
|
||||
@NotNull ClassesByNameProvider classesByName,
|
||||
@NotNull String className,
|
||||
@NotNull String methodName,
|
||||
int line) {
|
||||
ReferenceType classType = ContainerUtil.getFirstItem(classesByName.get(className));
|
||||
ReferenceType classType = ContainerUtil.getFirstItem(virtualMachine.classesByName(className));
|
||||
if (classType == null) {
|
||||
classType = new GeneratedReferenceType(virtualMachine, className);
|
||||
}
|
||||
|
||||
-5
@@ -7,7 +7,6 @@ import com.intellij.debugger.engine.SuspendContextImpl
|
||||
import com.intellij.debugger.engine.evaluation.EvaluateException
|
||||
import com.intellij.debugger.engine.evaluation.EvaluateExceptionUtil
|
||||
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl
|
||||
import com.intellij.debugger.jdi.ClassesByNameProvider
|
||||
import com.intellij.debugger.jdi.StackFrameProxyImpl
|
||||
import com.intellij.debugger.jdi.VirtualMachineProxyImpl
|
||||
import com.intellij.openapi.project.Project
|
||||
@@ -46,10 +45,6 @@ class DefaultExecutionContext(evaluationContext: EvaluationContextImpl) : BaseEx
|
||||
}
|
||||
return ref
|
||||
}
|
||||
|
||||
val classesCache: ClassesByNameProvider by lazy {
|
||||
ClassesByNameProvider.createCache(vm.allClasses())
|
||||
}
|
||||
}
|
||||
|
||||
sealed class BaseExecutionContext(val evaluationContext: EvaluationContextImpl) {
|
||||
|
||||
+1
-1
@@ -8,5 +8,5 @@ import org.jetbrains.kotlin.idea.debugger.base.util.evaluate.DefaultExecutionCon
|
||||
|
||||
class LocationCache(val context: DefaultExecutionContext) {
|
||||
fun createLocation(stackTraceElement: StackTraceElement): Location =
|
||||
DebuggerUtilsEx.findOrCreateLocation(context.suspendContext.virtualMachineProxy.virtualMachine, context.classesCache, stackTraceElement)
|
||||
DebuggerUtilsEx.findOrCreateLocation(context.suspendContext.virtualMachineProxy.virtualMachine, stackTraceElement)
|
||||
}
|
||||
Reference in New Issue
Block a user