Change tui_update_source_window for better type safety

tui_update_source_window can only be called for source and disassembly
windows, so change the argument type to enforce this at compile time.

gdb/ChangeLog
2019-06-25  Tom Tromey  <tom@tromey.com>

	* tui/tui-winsource.h (tui_update_source_window)
	(tui_update_source_window_as_is): Change parameter type.
	* tui/tui-winsource.c (tui_update_source_window): Change win_info
	to be a tui_source_window_base.
	(tui_update_source_window_as_is): Likewise.
	* tui/tui-win.c (make_visible_with_new_height): Update.
This commit is contained in:
Tom Tromey
2019-06-16 16:31:37 -06:00
parent 5b81daba91
commit be4da58857
4 changed files with 16 additions and 8 deletions

View File

@ -1,3 +1,12 @@
2019-06-25 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (tui_update_source_window)
(tui_update_source_window_as_is): Change parameter type.
* tui/tui-winsource.c (tui_update_source_window): Change win_info
to be a tui_source_window_base.
(tui_update_source_window_as_is): Likewise.
* tui/tui-win.c (make_visible_with_new_height): Update.
2019-06-25 Tom Tromey <tom@tromey.com> 2019-06-25 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.c (tui_erase_source_content) * tui/tui-winsource.c (tui_erase_source_content)

View File

@ -1327,7 +1327,7 @@ make_visible_with_new_height (struct tui_win_info *win_info)
line_or_addr = base->start_line_or_addr; line_or_addr = base->start_line_or_addr;
tui_free_win_content (win_info); tui_free_win_content (win_info);
tui_update_source_window (win_info, gdbarch, tui_update_source_window (base, gdbarch,
cursal.symtab, line_or_addr, TRUE); cursal.symtab, line_or_addr, TRUE);
} }
else if (deprecated_safe_get_selected_frame () != NULL) else if (deprecated_safe_get_selected_frame () != NULL)
@ -1349,7 +1349,7 @@ make_visible_with_new_height (struct tui_win_info *win_info)
line.loa = LOA_ADDRESS; line.loa = LOA_ADDRESS;
find_line_pc (s, cursal.line, &line.u.addr); find_line_pc (s, cursal.line, &line.u.addr);
} }
tui_update_source_window (win_info, gdbarch, s, line, TRUE); tui_update_source_window (base, gdbarch, s, line, TRUE);
} }
if (win_info->has_locator ()) if (win_info->has_locator ())
{ {

View File

@ -69,14 +69,13 @@ tui_display_main ()
/* Function to display source in the source window. This function /* Function to display source in the source window. This function
initializes the horizontal scroll to 0. */ initializes the horizontal scroll to 0. */
void void
tui_update_source_window (struct tui_win_info *win_info, tui_update_source_window (struct tui_source_window_base *win_info,
struct gdbarch *gdbarch, struct gdbarch *gdbarch,
struct symtab *s, struct symtab *s,
struct tui_line_or_address line_or_addr, struct tui_line_or_address line_or_addr,
int noerror) int noerror)
{ {
tui_source_window_base *base = (tui_source_window_base *) win_info; win_info->horizontal_offset = 0;
base->horizontal_offset = 0;
tui_update_source_window_as_is (win_info, gdbarch, s, line_or_addr, noerror); tui_update_source_window_as_is (win_info, gdbarch, s, line_or_addr, noerror);
return; return;
@ -86,7 +85,7 @@ tui_update_source_window (struct tui_win_info *win_info,
/* Function to display source in the source/asm window. This function /* Function to display source in the source/asm window. This function
shows the source as specified by the horizontal offset. */ shows the source as specified by the horizontal offset. */
void void
tui_update_source_window_as_is (struct tui_win_info *win_info, tui_update_source_window_as_is (struct tui_source_window_base *win_info,
struct gdbarch *gdbarch, struct gdbarch *gdbarch,
struct symtab *s, struct symtab *s,
struct tui_line_or_address line_or_addr, struct tui_line_or_address line_or_addr,

View File

@ -39,11 +39,11 @@ extern int tui_update_breakpoint_info (struct tui_win_info *win,
/* Function to display the "main" routine. */ /* Function to display the "main" routine. */
extern void tui_display_main (void); extern void tui_display_main (void);
extern void tui_update_source_window (struct tui_win_info *, extern void tui_update_source_window (struct tui_source_window_base *,
struct gdbarch *, struct symtab *, struct gdbarch *, struct symtab *,
struct tui_line_or_address, struct tui_line_or_address,
int); int);
extern void tui_update_source_window_as_is (struct tui_win_info *, extern void tui_update_source_window_as_is (struct tui_source_window_base *,
struct gdbarch *, struct symtab *, struct gdbarch *, struct symtab *,
struct tui_line_or_address, struct tui_line_or_address,
int); int);