mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 22:48:57 +08:00
Move content_in_use to tui_source_window class
From scanning the source now, it's clear that the content_in_use field is only used for the source window. This patch moves the field there, and changes it to be a bool at the same time. (A future patch will clean this up further, removing the field entirely.) gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_clear_source_content) (tui_show_source_content, tui_show_exec_info_content) (tui_clear_exec_info_content): Update. * tui/tui-stack.c (tui_show_locator_content): Update. (tui_show_frame_info): Update. * tui/tui-source.h (tui_source_window): Don't declare. * tui/tui-source.c (tui_source_window::showing_source_p): Rename from tui_source_is_displayed. * tui/tui-data.h (struct tui_gen_win_info) <content_in_use>: Remove field. (struct tui_source_window_base) <content_in_use>: New field. Now bool. (struct tui_source_window) <showing_source_p>: New method. (TUI_SRC_WIN): Change cast. * tui/tui-data.c (tui_initialize_static_data): Update.
This commit is contained in:
@ -1,3 +1,21 @@
|
|||||||
|
2019-07-17 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* tui/tui-winsource.c (tui_clear_source_content)
|
||||||
|
(tui_show_source_content, tui_show_exec_info_content)
|
||||||
|
(tui_clear_exec_info_content): Update.
|
||||||
|
* tui/tui-stack.c (tui_show_locator_content): Update.
|
||||||
|
(tui_show_frame_info): Update.
|
||||||
|
* tui/tui-source.h (tui_source_window): Don't declare.
|
||||||
|
* tui/tui-source.c (tui_source_window::showing_source_p): Rename
|
||||||
|
from tui_source_is_displayed.
|
||||||
|
* tui/tui-data.h (struct tui_gen_win_info) <content_in_use>:
|
||||||
|
Remove field.
|
||||||
|
(struct tui_source_window_base) <content_in_use>: New field. Now
|
||||||
|
bool.
|
||||||
|
(struct tui_source_window) <showing_source_p>: New method.
|
||||||
|
(TUI_SRC_WIN): Change cast.
|
||||||
|
* tui/tui-data.c (tui_initialize_static_data): Update.
|
||||||
|
|
||||||
2019-07-17 Tom Tromey <tom@tromey.com>
|
2019-07-17 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* tui/tui-winsource.c (tui_update_breakpoint_info): Use
|
* tui/tui-winsource.c (tui_update_breakpoint_info): Use
|
||||||
|
@ -321,7 +321,6 @@ tui_initialize_static_data ()
|
|||||||
win->viewport_height =
|
win->viewport_height =
|
||||||
win->last_visible_line = 0;
|
win->last_visible_line = 0;
|
||||||
win->handle = NULL;
|
win->handle = NULL;
|
||||||
win->content_in_use = FALSE;
|
|
||||||
win->is_visible = false;
|
win->is_visible = false;
|
||||||
win->title = 0;
|
win->title = 0;
|
||||||
}
|
}
|
||||||
|
@ -75,8 +75,6 @@ public:
|
|||||||
int height = 0;
|
int height = 0;
|
||||||
/* Origin of window. */
|
/* Origin of window. */
|
||||||
struct tui_point origin = {0, 0};
|
struct tui_point origin = {0, 0};
|
||||||
/* Can it be used, or is it already used? */
|
|
||||||
int content_in_use = FALSE;
|
|
||||||
/* Viewport height. */
|
/* Viewport height. */
|
||||||
int viewport_height = 0;
|
int viewport_height = 0;
|
||||||
/* Index of last visible line. */
|
/* Index of last visible line. */
|
||||||
@ -408,6 +406,8 @@ public:
|
|||||||
LINE_NO in this source window; false otherwise. */
|
LINE_NO in this source window; false otherwise. */
|
||||||
virtual bool location_matches_p (struct bp_location *loc, int line_no) = 0;
|
virtual bool location_matches_p (struct bp_location *loc, int line_no) = 0;
|
||||||
|
|
||||||
|
/* Can it be used, or is it already used? */
|
||||||
|
bool content_in_use = false;
|
||||||
/* Does the locator belong to this window? */
|
/* Does the locator belong to this window? */
|
||||||
bool m_has_locator = false;
|
bool m_has_locator = false;
|
||||||
/* Execution information window. */
|
/* Execution information window. */
|
||||||
@ -441,6 +441,8 @@ struct tui_source_window : public tui_source_window_base
|
|||||||
|
|
||||||
bool location_matches_p (struct bp_location *loc, int line_no) override;
|
bool location_matches_p (struct bp_location *loc, int line_no) override;
|
||||||
|
|
||||||
|
bool showing_source_p (const char *filename) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void do_scroll_vertical (int num_to_scroll) override;
|
void do_scroll_vertical (int num_to_scroll) override;
|
||||||
@ -610,7 +612,7 @@ extern int tui_win_is_auxiliary (enum tui_win_type win_type);
|
|||||||
/* Global Data. */
|
/* Global Data. */
|
||||||
extern struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
|
extern struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
|
||||||
|
|
||||||
#define TUI_SRC_WIN ((tui_source_window_base *) tui_win_list[SRC_WIN])
|
#define TUI_SRC_WIN ((tui_source_window *) tui_win_list[SRC_WIN])
|
||||||
#define TUI_DISASM_WIN ((tui_source_window_base *) tui_win_list[DISASSEM_WIN])
|
#define TUI_DISASM_WIN ((tui_source_window_base *) tui_win_list[DISASSEM_WIN])
|
||||||
#define TUI_DATA_WIN ((tui_data_window *) tui_win_list[DATA_WIN])
|
#define TUI_DATA_WIN ((tui_data_window *) tui_win_list[DATA_WIN])
|
||||||
#define TUI_CMD_WIN ((tui_cmd_window *) tui_win_list[CMD_WIN])
|
#define TUI_CMD_WIN ((tui_cmd_window *) tui_win_list[CMD_WIN])
|
||||||
|
@ -287,11 +287,10 @@ tui_show_symtab_source (tui_source_window_base *win_info,
|
|||||||
|
|
||||||
/* Answer whether the source is currently displayed in the source
|
/* Answer whether the source is currently displayed in the source
|
||||||
window. */
|
window. */
|
||||||
int
|
bool
|
||||||
tui_source_is_displayed (const char *fullname)
|
tui_source_window::showing_source_p (const char *fullname) const
|
||||||
{
|
{
|
||||||
return (TUI_SRC_WIN != NULL
|
return (content_in_use
|
||||||
&& TUI_SRC_WIN->content_in_use
|
|
||||||
&& (filename_cmp (tui_locator_win_info_ptr ()->full_name,
|
&& (filename_cmp (tui_locator_win_info_ptr ()->full_name,
|
||||||
fullname) == 0));
|
fullname) == 0));
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,5 @@ extern void tui_show_symtab_source (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 int tui_source_is_displayed (const char *);
|
|
||||||
|
|
||||||
#endif /* TUI_TUI_SOURCE_H */
|
#endif /* TUI_TUI_SOURCE_H */
|
||||||
|
@ -266,7 +266,6 @@ tui_show_locator_content (void)
|
|||||||
locator->refresh_window ();
|
locator->refresh_window ();
|
||||||
wmove (locator->handle, 0, 0);
|
wmove (locator->handle, 0, 0);
|
||||||
xfree (string);
|
xfree (string);
|
||||||
locator->content_in_use = TRUE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,14 +346,19 @@ tui_show_frame_info (struct frame_info *fi)
|
|||||||
|
|
||||||
symtab_and_line sal = find_frame_sal (fi);
|
symtab_and_line sal = find_frame_sal (fi);
|
||||||
|
|
||||||
source_already_displayed = sal.symtab != 0
|
const char *fullname = nullptr;
|
||||||
&& tui_source_is_displayed (symtab_to_fullname (sal.symtab));
|
if (sal.symtab != nullptr)
|
||||||
|
fullname = symtab_to_fullname (sal.symtab);
|
||||||
|
|
||||||
|
source_already_displayed = (sal.symtab != 0
|
||||||
|
&& TUI_SRC_WIN != nullptr
|
||||||
|
&& TUI_SRC_WIN->showing_source_p (fullname));
|
||||||
|
|
||||||
if (get_frame_pc_if_available (fi, &pc))
|
if (get_frame_pc_if_available (fi, &pc))
|
||||||
locator_changed_p
|
locator_changed_p
|
||||||
= tui_set_locator_info (get_frame_arch (fi),
|
= tui_set_locator_info (get_frame_arch (fi),
|
||||||
(sal.symtab == 0
|
(sal.symtab == 0
|
||||||
? "??" : symtab_to_fullname (sal.symtab)),
|
? "??" : fullname),
|
||||||
tui_get_function_from_frame (fi),
|
tui_get_function_from_frame (fi),
|
||||||
sal.line,
|
sal.line,
|
||||||
pc);
|
pc);
|
||||||
|
@ -212,7 +212,7 @@ tui_clear_source_content (struct tui_source_window_base *win_info,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
win_info->content_in_use = FALSE;
|
win_info->content_in_use = false;
|
||||||
tui_erase_source_content (win_info, display_prompt);
|
tui_erase_source_content (win_info, display_prompt);
|
||||||
for (i = 0; i < win_info->content.size (); i++)
|
for (i = 0; i < win_info->content.size (); i++)
|
||||||
{
|
{
|
||||||
@ -306,7 +306,7 @@ tui_show_source_content (struct tui_source_window_base *win_info)
|
|||||||
|
|
||||||
tui_check_and_display_highlight_if_needed (win_info);
|
tui_check_and_display_highlight_if_needed (win_info);
|
||||||
win_info->refresh_window ();
|
win_info->refresh_window ();
|
||||||
win_info->content_in_use = TRUE;
|
win_info->content_in_use = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See tui-data.h. */
|
/* See tui-data.h. */
|
||||||
@ -531,7 +531,6 @@ tui_show_exec_info_content (struct tui_source_window_base *win_info)
|
|||||||
0,
|
0,
|
||||||
content[cur_line - 1]);
|
content[cur_line - 1]);
|
||||||
exec_info->refresh_window ();
|
exec_info->refresh_window ();
|
||||||
exec_info->content_in_use = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -547,7 +546,6 @@ tui_erase_exec_info_content (struct tui_source_window_base *win_info)
|
|||||||
void
|
void
|
||||||
tui_clear_exec_info_content (struct tui_source_window_base *win_info)
|
tui_clear_exec_info_content (struct tui_source_window_base *win_info)
|
||||||
{
|
{
|
||||||
win_info->execution_info->content_in_use = FALSE;
|
|
||||||
tui_erase_exec_info_content (win_info);
|
tui_erase_exec_info_content (win_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user