[FYI] Fix regression from TUI disassembly style patch

Message ID 20191106013858.7539-1-tom@tromey.com
State New
Headers show
Series
  • [FYI] Fix regression from TUI disassembly style patch
Related show

Commit Message

Tom Tromey Nov. 6, 2019, 1:38 a.m.
My previous patch to add styling to the TUI disassembly failed to
correctly fix a bug that Simon had pointed out in review.  This patch
fixes the bug.

gdb/ChangeLog
2019-11-05  Tom Tromey  <tom@tromey.com>

	* tui/tui-disasm.c (struct tui_asm_line) <addr_size>: New member.
	(tui_disassemble): Set addr_size.
	(tui_disasm_window::set_contents): Use addr_size.

Change-Id: Ic0152f3b82a2f79be28ae46d590096661f271580
---
 gdb/ChangeLog        | 6 ++++++
 gdb/tui/tui-disasm.c | 5 +++--
 2 files changed, 9 insertions(+), 2 deletions(-)

-- 
2.17.2

Patch

diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 71783266391..8d5512efb2c 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -47,6 +47,7 @@  struct tui_asm_line
 {
   CORE_ADDR addr;
   std::string addr_string;
+  size_t addr_size;
   std::string insn;
 };
 
@@ -110,6 +111,7 @@  tui_disassemble (struct gdbarch *gdbarch,
 	  else
 	    new_size = asm_lines[pos + i].addr_string.size ();
 	  *addr_size = std::max (*addr_size, new_size);
+	  asm_lines[pos + i].addr_size = new_size;
 	}
 
       pc = pc + gdb_print_insn (gdbarch, pc, &gdb_dis_out, NULL);
@@ -239,8 +241,7 @@  tui_disasm_window::set_contents (struct gdbarch *arch,
 
       std::string line
 	= (asm_lines[i].addr_string
-	   + n_spaces (insn_pos
-		       - asm_lines[i].addr_string.size ())
+	   + n_spaces (insn_pos - asm_lines[i].addr_size)
 	   + asm_lines[i].insn);
 
       const char *ptr = line.c_str ();