From 4a5818a22045f1442e44bd76bc7ca45071067328 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Thu, 25 Nov 2004 18:23:38 +0000 Subject: [PATCH] The "decrementInstallCount" method of IBreakpoint should be called from the UI thread. Replaced the "breakpointRemoved" method of ICBreakpointListener by the "breakpointsRemoved" method that accepts multiple breakpoints. --- debug/org.eclipse.cdt.debug.core/ChangeLog | 8 +++++++ .../cdt/debug/core/ICBreakpointListener.java | 6 ++--- .../internal/core/CBreakpointManager.java | 24 ++++--------------- .../internal/core/CBreakpointNotifier.java | 8 +++---- 4 files changed, 20 insertions(+), 26 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 23b7aaebcf2..af25283f068 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,11 @@ +2004-11-25 Mikhail Khodjaiants + The "decrementInstallCount" method of IBreakpoint should be called from the UI thread. + Replaced the "breakpointRemoved" method of ICBreakpointListener by the "breakpointsRemoved" + method that accepts multiple breakpoints. + * ICBreakpointListener.java + * CBreakpointManager.java + * CBreakpointNotifier.java + 2004-11-24 Alain Magloire Use the ICDITarget.deleteAllBreakpoints() for speed. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICBreakpointListener.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICBreakpointListener.java index 73a40679d21..f186ac3005a 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICBreakpointListener.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICBreakpointListener.java @@ -59,10 +59,10 @@ public interface ICBreakpointListener public void breakpointChanged( IDebugTarget target, IBreakpoint breakpoint, Map attributes ); /** - * Notification that the given breakpoint has been removed from the specified target. + * Notification that the given breakpoints have been removed from the specified target. * * @param target debug target - * @param breakpoint breakpoint being removed + * @param breakpoints the breakpoints being removed */ - public void breakpointRemoved( IDebugTarget target, IBreakpoint breakpoint ); + public void breakpointsRemoved( IDebugTarget target, IBreakpoint[] breakpoints ); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java index b6ab4b9d3b8..59261f26dbf 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java @@ -20,7 +20,6 @@ import java.util.Set; import org.eclipse.cdt.core.IAddress; import org.eclipse.cdt.core.IAddressFactory; import org.eclipse.cdt.debug.core.CDIDebugModel; -import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.CDebugUtils; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDICondition; @@ -460,15 +459,8 @@ public class CBreakpointManager implements IBreakpointManagerListener, ICDIEvent } catch( CoreException e ) { } - getBreakpointNotifier().breakpointRemoved( getDebugTarget(), breakpoint ); - } - else { - try { - breakpoint.decrementInstallCount(); - } - catch( CoreException e ) { - } } + getBreakpointNotifier().breakpointsRemoved( getDebugTarget(), new IBreakpoint[] { breakpoint } ); } } @@ -508,18 +500,12 @@ public class CBreakpointManager implements IBreakpointManagerListener, ICDIEvent cdiTarget.deleteAllBreakpoints(); } catch( CDIException e ) { - // Do we care ? - CDebugCorePlugin.log( e.getMessage() ); + // Do we care ? + // No, we don't. +// CDebugCorePlugin.log( e.getMessage() ); } ICBreakpoint[] breakpoints = getBreakpointMap().getAllCBreakpoints(); - for( int i = 0; i < breakpoints.length; ++i ) { - try { - ((CBreakpoint)breakpoints[i]).decrementInstallCount(); - } - catch( CoreException e ) { - CDebugCorePlugin.log( e.getMessage() ); - } - } + getBreakpointNotifier().breakpointsRemoved( getDebugTarget(), breakpoints ); } private void setLocationBreakpointOnTarget( final ICBreakpoint breakpoint, final ICDITarget target, final ICDILocation location, final ICDICondition condition, final boolean enabled ) { diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointNotifier.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointNotifier.java index 938b6e62e0a..eda1f0b7dad 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointNotifier.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointNotifier.java @@ -70,12 +70,12 @@ public class CBreakpointNotifier implements ICBreakpointListener { /* * (non-Javadoc) * - * @see org.eclipse.cdt.debug.core.ICBreakpointListener#breakpointRemoved(org.eclipse.debug.core.model.IDebugTarget, - * org.eclipse.debug.core.model.IBreakpoint) + * @see org.eclipse.cdt.debug.core.ICBreakpointListener#breakpointsRemoved(org.eclipse.debug.core.model.IDebugTarget, + * org.eclipse.debug.core.model.IBreakpoint[]) */ - public void breakpointRemoved( IDebugTarget target, IBreakpoint breakpoint ) { + public void breakpointsRemoved( IDebugTarget target, IBreakpoint[] breakpoints ) { Object[] listeners = CDebugCorePlugin.getDefault().getCBreakpointListeners(); for( int i = 0; i < listeners.length; ++i ) - ((ICBreakpointListener)listeners[i]).breakpointRemoved( target, breakpoint ); + ((ICBreakpointListener)listeners[i]).breakpointsRemoved( target, breakpoints ); } } \ No newline at end of file