mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-207528 - remove executed methods one by one, not all together
This commit is contained in:
+12
-12
@@ -26,7 +26,6 @@ import com.intellij.psi.*;
|
||||
import com.intellij.util.DocumentUtil;
|
||||
import com.intellij.util.Range;
|
||||
import com.intellij.util.ThreeState;
|
||||
import com.intellij.util.containers.OrderedSet;
|
||||
import com.sun.jdi.Location;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -37,10 +36,7 @@ import org.jetbrains.org.objectweb.asm.Label;
|
||||
import org.jetbrains.org.objectweb.asm.MethodVisitor;
|
||||
import org.jetbrains.org.objectweb.asm.Opcodes;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Deque;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
public class JavaSmartStepIntoHandler extends JvmSmartStepIntoHandler {
|
||||
private static final Logger LOG = Logger.getInstance(JavaSmartStepIntoHandler.class);
|
||||
@@ -123,7 +119,7 @@ public class JavaSmartStepIntoHandler extends JvmSmartStepIntoHandler {
|
||||
}
|
||||
while (true);
|
||||
|
||||
final List<SmartStepTarget> targets = new OrderedSet<>();
|
||||
final List<SmartStepTarget> targets = new ArrayList<>();
|
||||
|
||||
final Ref<TextRange> textRange = new Ref<>(lineRange);
|
||||
|
||||
@@ -325,13 +321,17 @@ public class JavaSmartStepIntoHandler extends JvmSmartStepIntoHandler {
|
||||
@Override
|
||||
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
|
||||
if (myLineMatch) {
|
||||
targets.removeIf(t -> {
|
||||
if (t instanceof MethodSmartStepTarget) {
|
||||
return DebuggerUtilsEx.methodMatches(((MethodSmartStepTarget)t).getMethod(),
|
||||
owner.replace("/", "."), name, desc, suspendContext.getDebugProcess());
|
||||
Iterator<SmartStepTarget> iterator = targets.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
SmartStepTarget e = iterator.next();
|
||||
if (e instanceof MethodSmartStepTarget &&
|
||||
DebuggerUtilsEx.methodMatches(((MethodSmartStepTarget)e).getMethod(),
|
||||
owner.replace("/", "."), name, desc,
|
||||
suspendContext.getDebugProcess())) {
|
||||
iterator.remove();
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}, true);
|
||||
|
||||
Reference in New Issue
Block a user