diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/JavaSmartStepIntoHandler.java b/java/debugger/impl/src/com/intellij/debugger/actions/JavaSmartStepIntoHandler.java index 0d46f2fba155..f504c0f67655 100644 --- a/java/debugger/impl/src/com/intellij/debugger/actions/JavaSmartStepIntoHandler.java +++ b/java/debugger/impl/src/com/intellij/debugger/actions/JavaSmartStepIntoHandler.java @@ -52,8 +52,9 @@ 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.Stack; /** * User: Alexander Podkhalyuzin @@ -144,14 +145,14 @@ public class JavaSmartStepIntoHandler extends JvmSmartStepIntoHandler { final Ref textRange = new Ref<>(lineRange); final PsiElementVisitor methodCollector = new JavaRecursiveElementVisitor() { - final Stack myContextStack = new Stack<>(); - final Stack myParamNameStack = new Stack<>(); + final Deque myContextStack = new LinkedList<>(); + final Deque myParamNameStack = new LinkedList<>(); private int myNextLambdaExpressionOrdinal = 0; private boolean myInsideLambda = false; @Nullable private String getCurrentParamName() { - return myParamNameStack.isEmpty() ? null : myParamNameStack.peek(); + return myParamNameStack.peekFirst(); } @Override @@ -257,7 +258,7 @@ public class JavaSmartStepIntoHandler extends JvmSmartStepIntoHandler { } public void visitExpressionList(PsiExpressionList expressionList) { - final PsiMethod psiMethod = myContextStack.isEmpty()? null : myContextStack.peek(); + PsiMethod psiMethod = myContextStack.peekFirst(); if (psiMethod != null) { final String methodName = psiMethod.getName(); final PsiExpression[] expressions = expressionList.getExpressions(); diff --git a/java/debugger/impl/src/com/intellij/debugger/jdi/LocalVariablesUtil.java b/java/debugger/impl/src/com/intellij/debugger/jdi/LocalVariablesUtil.java index 2880847a8adf..dfb00467a1cf 100644 --- a/java/debugger/impl/src/com/intellij/debugger/jdi/LocalVariablesUtil.java +++ b/java/debugger/impl/src/com/intellij/debugger/jdi/LocalVariablesUtil.java @@ -360,15 +360,13 @@ public class LocalVariablesUtil { private final MultiMap myNames; private int myCurrentSlotIndex; private final PsiElement myElement; - private final Stack myIndexStack; + private final Deque myIndexStack = new LinkedList<>(); private boolean myReached = false; public LocalVariableNameFinder(int startSlot, MultiMap names, PsiElement element) { myNames = names; myCurrentSlotIndex = startSlot; myElement = element; - myIndexStack = new Stack<>(); - } private boolean shouldVisit(PsiElement scope) {