IDEA-363101 Kotlin Debugger: CCE on evaluating private function

GitOrigin-RevId: 98d05eb4f21fdd77bbbd6a98ac54eeb1d4dd72d2
This commit is contained in:
Egor Ushakov
2024-11-13 13:57:46 +00:00
committed by intellij-monorepo-bot
parent c23afc4504
commit b5816f2033
2 changed files with 4 additions and 15 deletions
@@ -24,7 +24,8 @@ public final class MethodInvoker {
String nameAndDescriptor,
ClassLoader loader,
Object arg1) throws Throwable {
return invoke(lookup, cls, obj, nameAndDescriptor, loader, new Object[]{arg1});
Object[] args = (arg1 == null || arg1 instanceof Object[]) ? (Object[])arg1 : new Object[]{arg1}; // do not wrap Object arrays again
return invoke(lookup, cls, obj, nameAndDescriptor, loader, args);
}
public static Object invoke2(MethodHandles.Lookup lookup,
@@ -182,7 +183,7 @@ public final class MethodInvoker {
// handle the case where null is passed as the vararg array
// TODO: handle when vararg is not the only parameter
int parameterCount = mt.parameterCount();
if (parameterCount == 1 && args.length == 1 && args[0] == null && mt.parameterType(0).isArray()) {
if (parameterCount == 1 && args == null && mt.parameterType(0).isArray()) {
result = method.invoke((Object[])null);
}
else {