[debugger] do not leak results values in helper - fixes for review

GitOrigin-RevId: d75d1b9f361c8382afe420779c69ea3e6fafbb8f
This commit is contained in:
Egor Ushakov
2025-02-11 16:36:15 +01:00
committed by intellij-monorepo-bot
parent c8c9b54efb
commit cb646fee57

View File

@@ -234,8 +234,13 @@ public final class MethodInvoker {
private static Object keepReference(Object ref, boolean soft) {
List<Object> objects = keptValues.get();
removeStaleReferences(objects);
Object wrapper = soft ? new SoftReference<>(ref) : new Object[]{ref};
objects.add(wrapper);
return wrapper;
}
// remove stale references first
private static void removeStaleReferences(List<Object> objects) {
Iterator<Object> iterator = objects.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
@@ -250,9 +255,5 @@ public final class MethodInvoker {
}
}
}
Object wrapper = soft ? new SoftReference<>(ref) : new Object[]{ref};
objects.add(wrapper);
return soft ? ref : wrapper;
}
}