diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 7687d79d9f3..8155cfc201e 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2003-09-10 Mikhail Khodjaiants + Fix for PR 42790: Memory view is not cleared when target is terminated. + * CFormattedMemoryBlock.java: fire 'terminate' event when block is disposing. + * CMemoryManager.java: implementation of 'dispose'. + 2003-09-09 Mikhail Khodjaiants Fix for PR 39680: Gash in error message for memory view. * CDebugModel.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryManager.java index e443eeed12b..b017299e0ea 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryManager.java @@ -46,8 +46,11 @@ public class CMemoryManager implements ICMemoryManager { for ( int i = 0; i < fBlocks.length; ++i ) { - fBlocks[i].dispose(); - fBlocks[i] = null; + if ( fBlocks[i] != null ) + { + fBlocks[i].dispose(); + fBlocks[i] = null; + } } } @@ -99,6 +102,14 @@ public class CMemoryManager implements ICMemoryManager public void dispose() { + for ( int i = 0; i < fBlocks.length; ++i ) + { + if ( fBlocks[i] != null ) + { + fBlocks[i].dispose(); + fBlocks[i] = null; + } + } } /* (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 9f84f5d3a12..e9139b7bd71 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 @@ -380,6 +380,7 @@ public class CFormattedMemoryBlock extends CDebugElement fAddressExpression = null; } getCDISession().getEventManager().removeEventListener( this ); + fireTerminateEvent(); } /* (non-Javadoc)