remove default breakpoints correctly

(cherry picked from commit 0a801d54741fa681e8c002f58c7961afc5b88cad)

GitOrigin-RevId: 314a8b57b755cbd10b17314c4512a02f88cf64f3
This commit is contained in:
Arseny Chernyaev
2019-11-07 02:40:58 +00:00
committed by intellij-monorepo-bot
parent d09800bb34
commit 8d7ff113e3
@@ -203,7 +203,7 @@ public class XBreakpointManagerImpl implements XBreakpointManager {
if (!isDefaultBreakpoint(breakpoint)) {
throw new IllegalStateException("Trying to remove not default breakpoint " + breakpoint);
}
doRemoveBreakpointImpl(breakpoint);
doRemoveBreakpointImpl(breakpoint, true);
}
private void doRemoveBreakpoint(XBreakpoint<?> breakpoint) {
@@ -212,14 +212,21 @@ public class XBreakpointManagerImpl implements XBreakpointManager {
breakpoint.setEnabled(false);
}
else {
doRemoveBreakpointImpl(breakpoint);
doRemoveBreakpointImpl(breakpoint, false);
}
}
private void doRemoveBreakpointImpl(XBreakpoint<?> breakpoint) {
private void doRemoveBreakpointImpl(XBreakpoint<?> breakpoint, boolean isDefaultBreakpoint) {
XBreakpointType type = breakpoint.getType();
XBreakpointBase<?,?,?> breakpointBase = (XBreakpointBase<?,?,?>)breakpoint;
myBreakpoints.remove(type, breakpointBase);
if (isDefaultBreakpoint) {
Set<XBreakpointBase<?, ?, ?>> typeDefaultBreakpoints = myDefaultBreakpoints.get(breakpoint.getType());
if (typeDefaultBreakpoints != null) {
typeDefaultBreakpoints.remove(breakpoint);
}
} else {
myBreakpoints.remove(type, breakpointBase);
}
myAllBreakpoints.remove(breakpointBase);
if (breakpointBase instanceof XLineBreakpointImpl) {
myLineBreakpointManager.unregisterBreakpoint((XLineBreakpointImpl)breakpointBase);