Fix regression from TUI disassembly style patch

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
This commit is contained in:
Tom Tromey 2019-11-05 18:12:49 -07:00
parent 8e71a6e725
commit 825165c57e
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
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.
2019-11-05 Tom Tromey <tom@tromey.com>
* rust-lang.c (rust_language_defn): Update.

View File

@ -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 ();