Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Khodjaiants2005-07-29 19:24:19 +0000
committerMikhail Khodjaiants2005-07-29 19:24:19 +0000
commitc16a83969c5e33796723ebb74f0002baa6fe7226 (patch)
treed0648e963e7f8a247c37a6bbd6f7056b501d8b8a
parenta644748bb86a0154cccde9abee0455e7a0cd7c85 (diff)
downloadorg.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/ChangeLog5
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java15
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();
}
}
}

Back to the top