From bace4cfa9617053e1b6a1431b14f9e4d7baba6a1 Mon Sep 17 00:00:00 2001 From: Egor Ushakov Date: Fri, 8 Nov 2024 11:59:20 +0100 Subject: [PATCH] [debugger] simplify arrays creation GitOrigin-RevId: 39b19397a74450b93b9502e725b03a1f479b1665 --- .../com/intellij/debugger/engine/DebugProcessImpl.java | 10 ++-------- .../debugger/ui/tree/render/BatchEvaluator.java | 6 +++--- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index 775704b457f8..db0ec415b8c1 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -1555,14 +1555,8 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb evaluationContext.getClassLoader()); // reserve one extra element for the return value - ArrayReference arrayArgs = DebuggerUtilsEx.mirrorOfArray(objectArrayClass, boxedArgs.size() + 1, evaluationContext); - try { - DebuggerUtilsEx.setArrayValues(arrayArgs, boxedArgs, false); - } - catch (Exception e) { - throw new EvaluateException(e.getMessage(), e); - } - invokerArgs.add(arrayArgs); + boxedArgs.add(null); + invokerArgs.add(DebuggerUtilsEx.mirrorOfArray(objectArrayClass, boxedArgs, evaluationContext)); // args invokerArgs.add(method.declaringType().classLoader()); // method's declaring type class loader to be able to resolve parameter types return DebuggerUtilsImpl.invokeHelperMethod(evaluationContext, MethodInvoker.class, "invoke", invokerArgs, false); } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java index 99f3417184de..04780b6eb8a5 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java @@ -130,8 +130,8 @@ public final class BatchEvaluator { } // reserve one extra element for the return value to avoid gc collection of the result - ArrayReference argArray = DebuggerUtilsEx.mirrorOfArray(objectArrayClass, values.size() + 1, evaluationContext); - DebuggerUtilsEx.setArrayValues(argArray, values, false); + ArrayReference argArray = + DebuggerUtilsEx.mirrorOfArray(objectArrayClass, ContainerUtil.append(values, (Value)null), evaluationContext); Value result = ((DebugProcessImpl)debugProcess).invokeMethod( evaluationContext, myBatchEvaluatorClass, myBatchEvaluatorMethod, Collections.singletonList(argArray), @@ -165,7 +165,7 @@ public final class BatchEvaluator { return true; } } - catch (EvaluateException | ClassNotLoadedException | InvalidTypeException e) { + catch (EvaluateException e) { LOG.error(e); } return false;