Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] MemoryBlock check for refresh()

2002-10-30 Alain Magloire
 
	* src/.../core/cdi/MemoryBlock.java (setDirty): When need a
	refresh setDirty() to true.
	(isDirty): Return the flag value.

	* src/.../core/cdi/MemoryManager.java (update): Check if
	the MemoryBlock isDirty().



Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.24
diff -u -r1.24 ChangeLog
--- ChangeLog	30 Oct 2002 20:52:05 -0000	1.24
+++ ChangeLog	31 Oct 2002 00:14:26 -0000
@@ -1,5 +1,14 @@
 2002-10-30 Alain Magloire
 
+	* src/.../core/cdi/MemoryBlock.java (setDirty): When need a
+	refresh setDirty() to true.
+	(isDirty): Return the flag value.
+
+	* src/.../core/cdi/MemoryManager.java (update): Check if
+	the MemoryBlock isDirty().
+
+2002-10-30 Alain Magloire
+
 	* src/.../core/cdi/MemoryBlock.java (setValue): reuse refresh()
 	to update the memory and fire any MemoryChangedEvents.
 
Index: src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java,v
retrieving revision 1.22
diff -u -r1.22 EventManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java	26 Oct 2002 20:23:49 -0000	1.22
+++ src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java	31 Oct 2002 00:14:28 -0000
@@ -78,8 +78,10 @@
 				MIMemoryChangedEvent miMem = (MIMemoryChangedEvent)miEvent;
 				Long[] addresses = miMem.getAddresses();
 				for (int i = 0; i < blocks.length; i++) {
-					if (blocks[i].contains(addresses) && ! blocks[i].isFrozen()) {
+					if (blocks[i].contains(addresses) &&
+						(! blocks[i].isFrozen() || blocks[i].isDirty())) {
 						cdiList.add(new MemoryChangedEvent(session, blocks[i], miMem));
+						blocks[i].setDirty(false);
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java,v
retrieving revision 1.7
diff -u -r1.7 MemoryBlock.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java	30 Oct 2002 20:51:53 -0000	1.7
+++ src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java	31 Oct 2002 00:14:29 -0000
@@ -21,6 +21,7 @@
 	MIDataReadMemoryInfo mem;
 	String expression;
 	boolean frozen;
+	boolean dirty;
 
 	public MemoryBlock(CTarget target, String exp, MIDataReadMemoryInfo info) {
 		super(target);
@@ -75,6 +76,20 @@
 	}
 
 	/**
+	 * Use by the EventManager to check fire events when doing refresh().
+	 */
+	public boolean isDirty() {
+		return dirty;
+	}
+
+	/**
+	 * Use by the EventManager to check fire events when doing refresh().
+	 */
+	public void setDirty(boolean d) {
+		dirty = d;
+	}
+
+	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock#getBytes()
 	 */
 	public byte[] getBytes() throws CDIException {
@@ -99,6 +114,7 @@
 	 */
 	public void refresh() throws CDIException {
 		MemoryManager mgr = (MemoryManager)getCTarget().getCSession().getMemoryManager();
+		setDirty(true);
 		mgr.update(this, null);
 	}
 



Back to the top