mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-09 08:09:39 +07:00
[debugger] do not leak results values in helper - fixes for review
GitOrigin-RevId: d75d1b9f361c8382afe420779c69ea3e6fafbb8f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c8c9b54efb
commit
cb646fee57
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user