Community
Participate
Working Groups
Build Identifier: I20110613-1736 Under some circumstances, when you edit a cell in the Memory Browser View the font color does not change to red to indicate the change. More specifically, when you edit a cell outside of the area visible in the view (i.e. you scroll up or down and edit a cell at an address that wasn't initially visible) the color doesn't change. The reason for this is that the history cache, which is used to track cell contents (and memory) changes, is synchronized with the range of addresses visible in the view. When the view is scrolled, the history cache is not update correctly. --- I'll provide a patch for this issue. Reproducible: Always Steps to Reproduce: 1. Enter a variable in the Memory Browser view expression field 2. Vertically scroll the view a line or two, in any direction 3. Edit a cell at an address that was not initially visible, and finish the operation by entering a carriage return. 4. Note that the font does not turn red to indicate the memory contents were modified.
Created attachment 204619 [details] Patch to fix the "edit cell" issue This patch fixes the issue described above.
The patch I attached maintains and synchronizes the internal memory history cache with the data cache. This provides a way for the view to determine if a cell has been modified, and to apply a font color change (typically red) to the edited cell that indicates that a change has been made. There are a five cases (actually, only four are interesting) that are handled by this patch, with comments describing each case included in the code.
I committed the fix after a quick test. Thanks Andre.
*** cdt git genie on behalf of Pawel Piech *** Bug 359207 - Memory Browser: Cell edit modification font color [*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=fbb828d0caca593fdd8ac855a9fde038c1f78340
CQ:WIND00242972
I reviewed Andre's patch and for the most part it looks OK. Pictorial layout would have helped and there are a couple of redundant checks, but nothing that makes the logic wrong. Randy