EA-209321 - assert: StackFrameProxyImpl.thisObject

GitOrigin-RevId: b707273bd1f1003c7144fa9bfa3faf4c1f5972dc
This commit is contained in:
Egor Ushakov
2019-07-24 13:32:51 +03:00
committed by intellij-monorepo-bot
parent 2b0a160b8a
commit bca302e19b
3 changed files with 10 additions and 3 deletions
@@ -159,7 +159,6 @@ public class JavaStackFrame extends XStackFrame implements JVMStackFrameInfoProv
protected XNamedValue createThisNode(EvaluationContextImpl evaluationContext) {
ObjectReference thisObjectReference = myDescriptor.getThisObject();
if (thisObjectReference != null) {
myDescriptor.putUserData(BreakpointIntentionAction.THIS_TYPE_KEY, thisObjectReference.type().name());
return JavaValue.create(myNodeManager.getThisDescriptor(null, thisObjectReference), evaluationContext, myNodeManager);
}
return null;
@@ -1,4 +1,4 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.debugger.ui.breakpoints
import com.intellij.debugger.InstanceFilter
@@ -131,6 +131,9 @@ internal abstract class BreakpointIntentionAction(protected val myBreakpoint: XB
@JvmField
val THIS_TYPE_KEY = Key.create<String>("THIS_TYPE_KEY")
@JvmField
val THIS_ID_KEY = Key.create<Long>("THIS_ID_KEY")
@JvmStatic
fun getIntentions(breakpoint: XBreakpoint<*>, currentSession: XDebugSession?): List<AnAction> {
val process = currentSession?.debugProcess
@@ -146,7 +149,7 @@ internal abstract class BreakpointIntentionAction(protected val myBreakpoint: XB
res.add(AddClassNotFilter(breakpoint, it))
}
frameDescriptor.thisObject?.uniqueID()?.let {
frameDescriptor.getUserData(THIS_ID_KEY)?.let {
res.add(AddInstanceFilter(breakpoint, it))
}
@@ -8,6 +8,7 @@ import com.intellij.debugger.engine.evaluation.EvaluationContextImpl;
import com.intellij.debugger.impl.DebuggerUtilsEx;
import com.intellij.debugger.jdi.StackFrameProxyImpl;
import com.intellij.debugger.settings.ThreadsViewSettings;
import com.intellij.debugger.ui.breakpoints.BreakpointIntentionAction;
import com.intellij.debugger.ui.tree.StackFrameDescriptor;
import com.intellij.debugger.ui.tree.render.DescriptorLabelListener;
import com.intellij.icons.AllIcons;
@@ -222,6 +223,10 @@ public class StackFrameDescriptorImpl extends NodeDescriptorImpl implements Stac
} catch (EvaluateException e) {
LOG.info(e);
}
if (myThisObject != null) {
putUserData(BreakpointIntentionAction.THIS_ID_KEY, myThisObject.uniqueID());
putUserData(BreakpointIntentionAction.THIS_TYPE_KEY, myThisObject.type().name());
}
}
return myThisObject;
}