diff options
author | Mikhail Khodjaiants | 2005-07-29 19:24:19 +0000 |
---|---|---|
committer | Mikhail Khodjaiants | 2005-07-29 19:24:19 +0000 |
commit | c16a83969c5e33796723ebb74f0002baa6fe7226 (patch) | |
tree | d0648e963e7f8a247c37a6bbd6f7056b501d8b8a | |
parent | a644748bb86a0154cccde9abee0455e7a0cd7c85 (diff) | |
download | org.eclipse.cdt-c16a83969c5e33796723ebb74f0002baa6fe7226.tar.gz org.eclipse.cdt-c16a83969c5e33796723ebb74f0002baa6fe7226.tar.xz org.eclipse.cdt-c16a83969c5e33796723ebb74f0002baa6fe7226.zip |
The registers with errors shouldn't be disposed when the target is suspended. Added synchronization to the "getRegisters" method.
-rw-r--r-- | debug/org.eclipse.cdt.debug.core/ChangeLog | 5 | ||||
-rw-r--r-- | debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java | 15 |
2 files changed, 14 insertions, 6 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 02036fb86bb..ae98377ad1f 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2005-07-29 Mikhail Khodjaiants
+ The registers with errors shouldn't be disposed when the target is suspended.
+ Added synchronization to the "getRegisters" method.
+ * CRegisterGroup.java
+
2005-07-28 Mikhail Khodjaiants
Bug 104421: Register view can not show correct value when switch between different thread or stack frame.
* ICDIRegister.java
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java index bb9773523e5..46ea278ba6a 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java @@ -80,9 +80,13 @@ public class CRegisterGroup extends CDebugElement implements IPersistableRegiste if ( fDisposed ) return new IRegister[0]; if ( fRegisters == null ) { - fRegisters = new IRegister[fRegisterDescriptors.length]; - for( int i = 0; i < fRegisters.length; ++i ) { - fRegisters[i] = new CRegister( this, fRegisterDescriptors[i] ); + synchronized( this ) { + if ( fRegisters == null ) { + fRegisters = new IRegister[fRegisterDescriptors.length]; + for( int i = 0; i < fRegisters.length; ++i ) { + fRegisters[i] = new CRegister( this, fRegisterDescriptors[i] ); + } + } } } return fRegisters; @@ -101,13 +105,12 @@ public class CRegisterGroup extends CDebugElement implements IPersistableRegiste } public void targetSuspended() { - if (fRegisters == null) { + if ( fRegisters == null ) { return; } for ( int i = 0; i < fRegisters.length; ++i ) { if ( fRegisters[i] != null && ((CRegister)fRegisters[i]).hasErrors() ) { - ((CRegister)fRegisters[i]).dispose(); - fRegisters[i] = null; + ((CRegister)fRegisters[i]).resetStatus(); } } } |