diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 5f80ec90395..2c8a2c3bcfc 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,11 @@ +2004-03-17 Alain Magloire + + Changes to get some performances. The array of + events is passed instead of one at a time. + + Affected files all the implement ICDIEventListener + to many to enumerate. + 2004-03-16 Alain Magloire Make this class extends ICDIEventListener diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java index 5d0af3988d5..8175c6f1428 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java @@ -6,7 +6,6 @@ package org.eclipse.cdt.debug.core; -import java.text.MessageFormat; import java.util.HashMap; import org.eclipse.cdt.core.model.CModelException; @@ -17,6 +16,7 @@ import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDIConfiguration; import org.eclipse.cdt.debug.core.cdi.ICDILocation; import org.eclipse.cdt.debug.core.cdi.ICDISessionObject; +import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDISuspendedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIExpression; import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock; @@ -194,20 +194,23 @@ public class CDebugModel throw new DebugException( e.getStatus() ); } - ((CDebugTarget)target[0]).handleDebugEvent( new ICDISuspendedEvent() - { - public ICDISessionObject getReason() - { - return null; - } + ICDIEvent[] events = new ICDIEvent[] + { + new ICDISuspendedEvent() + { + public ICDISessionObject getReason() + { + return null; + } - public ICDIObject getSource() - { - return cdiTarget; - } - - } ); + public ICDIObject getSource() + { + return cdiTarget; + } + } + }; + ((CDebugTarget)target[0]).handleDebugEvents( events ); return target[0]; } @@ -240,19 +243,23 @@ public class CDebugModel throw new DebugException( e.getStatus() ); } - ((CDebugTarget)target[0]).handleDebugEvent( new ICDISuspendedEvent() - { - public ICDISessionObject getReason() - { - return null; - } - - public ICDIObject getSource() - { - return cdiTarget; - } + ICDIEvent[] events = new ICDIEvent[] + { + new ICDISuspendedEvent() + { + public ICDISessionObject getReason() + { + return null; + } - } ); + public ICDIObject getSource() + { + return cdiTarget; + } + + } + }; + ((CDebugTarget)target[0]).handleDebugEvents( events ); return target[0]; } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java index 0b79757a741..a00bbe5a2af 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java @@ -1,5 +1,4 @@ package org.eclipse.cdt.debug.core; -import org.eclipse.cdt.debug.core.CDebugCorePlugin; /* * (c) Copyright QNX Software System 2002. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/event/ICDIEventListener.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/event/ICDIEventListener.java index be9798d9459..ebaaf9799d3 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/event/ICDIEventListener.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/event/ICDIEventListener.java @@ -19,5 +19,5 @@ public interface ICDIEventListener { * * @param event - the event */ - void handleDebugEvent( ICDIEvent event ); + void handleDebugEvents(ICDIEvent[] event); } 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 a34971bcce7..82ae6e15f4e 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 @@ -187,27 +187,31 @@ public class CBreakpointManager implements ICBreakpointManager, ICDIEventListene } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { - ICDIObject source = event.getSource(); - if ( source != null && source.getTarget().equals( getDebugTarget().getCDITarget() ) ) + for (int i = 0; i < events.length; i++) { - if ( event instanceof ICDICreatedEvent ) + ICDIEvent event = events[i]; + ICDIObject source = event.getSource(); + if ( source != null && source.getTarget().equals( getDebugTarget().getCDITarget() ) ) { - if ( source instanceof ICDIBreakpoint ) - handleBreakpointCreatedEvent( (ICDIBreakpoint)source ); - } - else if ( event instanceof ICDIDestroyedEvent ) - { - if ( source instanceof ICDIBreakpoint ) - handleBreakpointDestroyedEvent( (ICDIBreakpoint)source ); - } - else if ( event instanceof ICDIChangedEvent ) - { - if ( source instanceof ICDIBreakpoint ) - handleBreakpointChangedEvent( (ICDIBreakpoint)source ); + if ( event instanceof ICDICreatedEvent ) + { + if ( source instanceof ICDIBreakpoint ) + handleBreakpointCreatedEvent( (ICDIBreakpoint)source ); + } + else if ( event instanceof ICDIDestroyedEvent ) + { + if ( source instanceof ICDIBreakpoint ) + handleBreakpointDestroyedEvent( (ICDIBreakpoint)source ); + } + else if ( event instanceof ICDIChangedEvent ) + { + if ( source instanceof ICDIBreakpoint ) + handleBreakpointChangedEvent( (ICDIBreakpoint)source ); + } } } } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DebugConfiguration.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DebugConfiguration.java index 330b61f0109..17b7c466a14 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DebugConfiguration.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DebugConfiguration.java @@ -13,7 +13,6 @@ import org.eclipse.cdt.debug.core.ICDebugger; import org.eclipse.core.boot.BootLoader; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.cdt.debug.core.CDebugCorePlugin; public class DebugConfiguration implements ICDebugConfiguration { /** diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java index 234860ec575..d2873f841f2 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java @@ -85,9 +85,9 @@ public class CArrayPartition extends CVariable } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index 92a6fbd0462..977f1c83b2d 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -675,9 +675,10 @@ public class CDebugTarget extends CDebugElement protected void suspendThreads( ICDISuspendedEvent event ) { Iterator it = getThreadList().iterator(); + ICDIEvent[] events = new ICDIEvent[] {event}; while( it.hasNext() ) { - ((CThread)it.next()).handleDebugEvent( event ); + ((CThread)it.next()).handleDebugEvents( events ); } } @@ -1002,87 +1003,91 @@ public class CDebugTarget extends CDebugElement } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { - ICDIObject source = event.getSource(); - if ( source == null && event instanceof ICDIDestroyedEvent ) + for (int i = 0; i < events.length; i++) { - handleTerminatedEvent( (ICDIDestroyedEvent)event ); - } - else if ( source.getTarget().equals( getCDITarget() ) ) - { - if ( event instanceof ICDICreatedEvent ) + ICDIEvent event = events[i]; + ICDIObject source = event.getSource(); + if ( source == null && event instanceof ICDIDestroyedEvent ) { - if ( source instanceof ICDIThread ) - { - handleThreadCreatedEvent( (ICDICreatedEvent)event ); - } - if ( source instanceof ICDISharedLibrary ) - { - getSharedLibraryManager().sharedLibraryLoaded( (ICDISharedLibrary)source ); - } + handleTerminatedEvent( (ICDIDestroyedEvent)event ); } - else if ( event instanceof ICDISuspendedEvent ) + else if ( source.getTarget().equals( getCDITarget() ) ) { - if ( source instanceof ICDITarget || source instanceof ICDIThread ) + if ( event instanceof ICDICreatedEvent ) { - handleSuspendedEvent( (ICDISuspendedEvent)event ); + if ( source instanceof ICDIThread ) + { + handleThreadCreatedEvent( (ICDICreatedEvent)event ); + } + if ( source instanceof ICDISharedLibrary ) + { + getSharedLibraryManager().sharedLibraryLoaded( (ICDISharedLibrary)source ); + } } - } - else if ( event instanceof ICDIResumedEvent ) - { - if ( source instanceof ICDITarget ) + else if ( event instanceof ICDISuspendedEvent ) { - handleResumedEvent( (ICDIResumedEvent)event ); + if ( source instanceof ICDITarget || source instanceof ICDIThread ) + { + handleSuspendedEvent( (ICDISuspendedEvent)event ); + } } - } - else if ( event instanceof ICDIExitedEvent ) - { - if ( source instanceof ICDITarget ) + else if ( event instanceof ICDIResumedEvent ) { - handleExitedEvent( (ICDIExitedEvent)event ); + if ( source instanceof ICDITarget ) + { + handleResumedEvent( (ICDIResumedEvent)event ); + } } - } - else if ( event instanceof ICDIDestroyedEvent ) - { - if ( source instanceof ICDIThread ) + else if ( event instanceof ICDIExitedEvent ) { - handleThreadTerminatedEvent( (ICDIDestroyedEvent)event ); + if ( source instanceof ICDITarget ) + { + handleExitedEvent( (ICDIExitedEvent)event ); + } } - if ( source instanceof ICDISharedLibrary ) + else if ( event instanceof ICDIDestroyedEvent ) { - getSharedLibraryManager().sharedLibraryUnloaded( (ICDISharedLibrary)source ); + if ( source instanceof ICDIThread ) + { + handleThreadTerminatedEvent( (ICDIDestroyedEvent)event ); + } + if ( source instanceof ICDISharedLibrary ) + { + getSharedLibraryManager().sharedLibraryUnloaded( (ICDISharedLibrary)source ); + } } - } - else if ( event instanceof ICDIDisconnectedEvent ) - { - if ( source instanceof ICDITarget ) + else if ( event instanceof ICDIDisconnectedEvent ) { - handleDisconnectedEvent( (ICDIDisconnectedEvent)event ); + if ( source instanceof ICDITarget ) + { + handleDisconnectedEvent( (ICDIDisconnectedEvent)event ); + } } - } - else if ( event instanceof ICDIChangedEvent ) - { - if ( source instanceof ICDITarget ) + else if ( event instanceof ICDIChangedEvent ) { - handleChangedEvent( (ICDIChangedEvent)event ); + if ( source instanceof ICDITarget ) + { + handleChangedEvent( (ICDIChangedEvent)event ); + } + if ( source instanceof ICDISharedLibrary ) + { + getSharedLibraryManager().symbolsLoaded( (ICDISharedLibrary)source ); + } + if ( source instanceof ICDISignal ) + { + getSignalManager().signalChanged( (ICDISignal)source ); + } } - if ( source instanceof ICDISharedLibrary ) + else if ( event instanceof ICDIRestartedEvent ) { - getSharedLibraryManager().symbolsLoaded( (ICDISharedLibrary)source ); - } - if ( source instanceof ICDISignal ) - { - getSignalManager().signalChanged( (ICDISignal)source ); - } - } - else if ( event instanceof ICDIRestartedEvent ) - { - if ( source instanceof ICDITarget ) - { - handleRestartedEvent( (ICDIRestartedEvent)event ); + if ( source instanceof ICDITarget ) + { + handleRestartedEvent( (ICDIRestartedEvent)event ); + } } } } @@ -1318,7 +1323,8 @@ public class CDebugTarget extends CDebugElement CThread thread = findThread( (ICDIThread)event.getSource() ); if ( thread != null && newThreads.contains( thread ) ) { - thread.handleDebugEvent( event ); + ICDIEvent[] evts = new ICDIEvent[]{event}; + thread.handleDebugEvents( evts ); } } if ( reason instanceof ICDIEndSteppingRange ) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java index b55841ec249..529d3254190 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java @@ -89,25 +89,30 @@ public class CExpression extends CModificationVariable } /** - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { - if ( event instanceof ICDIResumedEvent ) + for (int i = 0; i < events.length; i++) { - if ( event.getSource() instanceof ICDITarget && getCDITarget().equals( event.getSource() ) ) + ICDIEvent event = events[i]; + if ( event instanceof ICDIResumedEvent ) { - try + if ( event.getSource() instanceof ICDITarget && getCDITarget().equals( event.getSource() ) ) { - setChanged( false ); - } - catch( DebugException e ) - { - CDebugCorePlugin.log( e ); + try + { + setChanged( false ); + } + catch( DebugException e ) + { + CDebugCorePlugin.log( e ); + } } + break; } } - super.handleDebugEvent(event); + super.handleDebugEvents(events); } /* (non-Javadoc) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java index e9139b7bd71..4deb450df0e 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java @@ -422,42 +422,46 @@ public class CFormattedMemoryBlock extends CDebugElement } /** - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { - ICDIObject source = event.getSource(); - if (source == null) - return; - - if ( source.getTarget().equals( getCDITarget() ) ) + for (int i = 0; i < events.length; i++) { - if ( event instanceof ICDIResumedEvent ) + ICDIEvent event = events[i]; + ICDIObject source = event.getSource(); + if (source == null) + continue; + + if ( source.getTarget().equals( getCDITarget() ) ) { - if ( source instanceof ICDITarget ) + if ( event instanceof ICDIResumedEvent ) { - handleResumedEvent( (ICDIResumedEvent)event ); + if ( source instanceof ICDITarget ) + { + handleResumedEvent( (ICDIResumedEvent)event ); + } } - } - else if ( event instanceof ICDIMemoryChangedEvent ) - { - if ( source instanceof ICDIMemoryBlock && source.equals( getCDIMemoryBlock() ) ) + else if ( event instanceof ICDIMemoryChangedEvent ) { - handleChangedEvent( (ICDIMemoryChangedEvent)event ); + if ( source instanceof ICDIMemoryBlock && source.equals( getCDIMemoryBlock() ) ) + { + handleChangedEvent( (ICDIMemoryChangedEvent)event ); + } } - } - else if ( event instanceof ICDIChangedEvent ) - { - if ( source instanceof ICDIExpression && source.equals( fAddressExpression ) ) + else if ( event instanceof ICDIChangedEvent ) { - handleAddressChangedEvent( (ICDIChangedEvent)event ); + if ( source instanceof ICDIExpression && source.equals( fAddressExpression ) ) + { + handleAddressChangedEvent( (ICDIChangedEvent)event ); + } } - } - else if ( event instanceof ICDIDestroyedEvent ) - { - if ( source instanceof ICDIExpression && source.equals( fAddressExpression ) ) + else if ( event instanceof ICDIDestroyedEvent ) { - handleDestroyedEvent( (ICDIDestroyedEvent)event ); + if ( source instanceof ICDIExpression && source.equals( fAddressExpression ) ) + { + handleDestroyedEvent( (ICDIDestroyedEvent)event ); + } } } } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java index 186151c3eee..2d09c7f93d0 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java @@ -62,27 +62,30 @@ public class CGlobalVariable extends CModificationVariable } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { - super.handleDebugEvent( event ); - - ICDIObject source = event.getSource(); - if (source == null) - return; - - if ( source.getTarget().equals( getCDITarget() ) ) + super.handleDebugEvents( events ); + for (int i = 0; i < events.length; i++) { - if ( event instanceof ICDIResumedEvent ) + ICDIEvent event = events[i]; + ICDIObject source = event.getSource(); + if (source == null) + continue; + + if ( source.getTarget().equals( getCDITarget() ) ) { - try + if ( event instanceof ICDIResumedEvent ) { - setChanged( false ); - } - catch( DebugException e ) - { - CDebugCorePlugin.log( e ); + try + { + setChanged( false ); + } + catch( DebugException e ) + { + CDebugCorePlugin.log( e ); + } } } } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSharedLibrary.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSharedLibrary.java index e90a9822d6c..7c064f08441 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSharedLibrary.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSharedLibrary.java @@ -104,9 +104,9 @@ public class CSharedLibrary extends CDebugElement } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { } } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSignal.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSignal.java index 539946fd19d..0aba703707c 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSignal.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSignal.java @@ -81,9 +81,9 @@ public class CSignal extends CDebugElement implements ICSignal, ICDIEventListene } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java index 169446b1e6e..ab23254ee14 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java @@ -245,9 +245,9 @@ public class CStackFrame extends CDebugElement } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java index b23d449966c..07ed8041fb2 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java @@ -418,52 +418,56 @@ public class CThread extends CDebugElement } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { if ( isDisposed() ) return; - ICDIObject source = event.getSource(); - if ( source == null ) - return; - if ( source.getTarget().equals( getCDITarget() ) ) + for (int i = 0; i < events.length; i++) { - if ( event instanceof ICDISuspendedEvent ) + ICDIEvent event = events[i]; + ICDIObject source = event.getSource(); + if ( source == null ) + continue; + if ( source.getTarget().equals( getCDITarget() ) ) { - if ( ( source instanceof ICDIThread && getCDIThread().equals( (ICDIThread)source ) ) || - source instanceof ICDITarget ) + if ( event instanceof ICDISuspendedEvent ) { -// if ( !(((ICDISuspendedEvent)event).getReason() instanceof ICDISharedLibraryEvent && applyDeferredBreakpoints()) ) - handleSuspendedEvent( (ICDISuspendedEvent)event ); + if ( ( source instanceof ICDIThread && getCDIThread().equals( (ICDIThread)source ) ) || + source instanceof ICDITarget ) + { +// if ( !(((ICDISuspendedEvent)event).getReason() instanceof ICDISharedLibraryEvent && applyDeferredBreakpoints()) ) + handleSuspendedEvent( (ICDISuspendedEvent)event ); + } } - } - else if ( event instanceof ICDIResumedEvent ) - { - if ( ( source instanceof ICDIThread && source.equals( getCDIThread() ) ) ) + else if ( event instanceof ICDIResumedEvent ) { - handleResumedEvent( (ICDIResumedEvent)event ); + if ( ( source instanceof ICDIThread && source.equals( getCDIThread() ) ) ) + { + handleResumedEvent( (ICDIResumedEvent)event ); + } } - } - else if ( event instanceof ICDIDestroyedEvent ) - { - if ( source instanceof ICDIThread ) + else if ( event instanceof ICDIDestroyedEvent ) { - handleTerminatedEvent( (ICDIDestroyedEvent)event ); + if ( source instanceof ICDIThread ) + { + handleTerminatedEvent( (ICDIDestroyedEvent)event ); + } } - } - else if ( event instanceof ICDIDisconnectedEvent ) - { - if ( source instanceof ICDIThread ) + else if ( event instanceof ICDIDisconnectedEvent ) { - handleDisconnectedEvent( (ICDIDisconnectedEvent)event ); + if ( source instanceof ICDIThread ) + { + handleDisconnectedEvent( (ICDIDisconnectedEvent)event ); + } } - } - else if ( event instanceof ICDIChangedEvent ) - { - if ( source instanceof ICDIThread ) + else if ( event instanceof ICDIChangedEvent ) { - handleChangedEvent( (ICDIChangedEvent)event ); + if ( source instanceof ICDIThread ) + { + handleChangedEvent( (ICDIChangedEvent)event ); + } } } } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java index ccf8c97e7df..72e58fb12f7 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java @@ -5,7 +5,6 @@ */ package org.eclipse.cdt.debug.internal.core.model; -import java.text.MessageFormat; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; @@ -581,33 +580,37 @@ public abstract class CVariable extends CDebugElement } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(ICDIEvent) */ - public void handleDebugEvent( ICDIEvent event ) + public void handleDebugEvents( ICDIEvent[] events ) { - ICDIObject source = event.getSource(); - if (source == null) - return; - - if ( source.getTarget().equals( getCDITarget() ) ) + for (int i = 0; i < events.length; i++) { - if ( event instanceof ICDIChangedEvent ) + ICDIEvent event = events[i]; + ICDIObject source = event.getSource(); + if (source == null) + continue; + + if ( source.getTarget().equals( getCDITarget() ) ) { - if ( source instanceof ICDIVariable && isSameVariable( (ICDIVariable)source ) ) + if ( event instanceof ICDIChangedEvent ) { - handleChangedEvent( (ICDIChangedEvent)event ); + if ( source instanceof ICDIVariable && isSameVariable( (ICDIVariable)source ) ) + { + handleChangedEvent( (ICDIChangedEvent)event ); + } } - } - else if ( event instanceof ICDIDestroyedEvent ) - { - if ( source instanceof ICDIVariable && isSameVariable( (ICDIVariable)source ) ) + else if ( event instanceof ICDIDestroyedEvent ) { - handleDestroyedEvent( (ICDIDestroyedEvent)event ); + if ( source instanceof ICDIVariable && isSameVariable( (ICDIVariable)source ) ) + { + handleDestroyedEvent( (ICDIDestroyedEvent)event ); + } + } + else if ( event instanceof ICDIResumedEvent ) + { + handleResumedEvent( (ICDIResumedEvent)event ); } - } - else if ( event instanceof ICDIResumedEvent ) - { - handleResumedEvent( (ICDIResumedEvent)event ); } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index 313e7ed3ffc..add1911f137 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,11 @@ +2004-03-17 Alain Magloire + + Changes pass the array of events instead + of one at a time + + * cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java + * cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java + 2004-03-16 Tanya Wolff Marked strings in src as non-translatable diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java index 3781623673a..733b95e3815 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java @@ -234,23 +234,11 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs * Send ICDIEvent to the listeners. */ private void fireEvents(ICDIEvent[] cdiEvents) { - if (cdiEvents != null) { - for (int i = 0; i < cdiEvents.length; i++) { - fireEvent(cdiEvents[i]); - } - } - } - - /** - * Send ICDIEvent to the listeners. - */ - private void fireEvent(ICDIEvent cdiEvent) { - if (cdiEvent != null) { - ICDIEventListener[] listeners = - (ICDIEventListener[])list.toArray(new ICDIEventListener[0]); + if (cdiEvents != null && cdiEvents.length > 0) { + ICDIEventListener[] listeners = (ICDIEventListener[])list.toArray(new ICDIEventListener[0]); for (int i = 0; i < listeners.length; i++) { - listeners[i].handleDebugEvent(cdiEvent); - } + listeners[i].handleDebugEvents(cdiEvents); + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java index 16d8a032624..66c28c7c535 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java @@ -48,17 +48,9 @@ public abstract class Manager extends SessionObject implements ICDIManager { public abstract void update() throws CDIException; /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent[]) + * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent[]) */ - public void handleDebugEvent(ICDIEvent[] events) { - for (int i = 0; i < events.length; i++) { - handleDebugEvent(events[i]); - } + public void handleDebugEvents(ICDIEvent[] events) { } - /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent) - */ - public void handleDebugEvent(ICDIEvent event) { - } }