diff options
author | Tom Tromey <tom@tromey.com> | 2019-07-02 17:07:02 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-07-17 12:19:25 -0600 |
commit | 5104fe361d818a46b262b5d504f3d293c9a2b44a (patch) | |
tree | 2e6677c74b037797ea5da459cc3f1a0d0099305b /gdb/tui/tui-winsource.h | |
parent | daa15dde7202d948da694bdfe0df9e5294c7ee9a (diff) | |
download | gdb-5104fe361d818a46b262b5d504f3d293c9a2b44a.zip gdb-5104fe361d818a46b262b5d504f3d293c9a2b44a.tar.gz gdb-5104fe361d818a46b262b5d504f3d293c9a2b44a.tar.bz2 |
Move source window common to code to tui-winsource.[ch]
Like the previous rearranging patches, this moves the source and
disassembly window base class code to tui-winsource.[ch]. The
execution info window is also moved, because it is associated with
this base class.
gdb/ChangeLog
2019-07-17 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_exec_info_window)
(struct tui_source_window_base): Move from tui-data.h.
* tui/tui-winsource.c: Move many method definitions from
elsewhere. Remove "structuring" comments.
* tui/tui-wingeneral.c (tui_source_window_base::make_visible)
(tui_source_window_base::refresh_window): Move to
tui-winsource.c.
* tui/tui-win.c (tui_source_window_base::refresh_all)
(tui_source_window_base::update_tab_width)
(tui_source_window_base::set_new_height)
(tui_source_window_base::do_make_visible_with_new_height): Move to
tui-winsource.c.
* tui/tui-source.h: Update.
* tui/tui-source.c (tui_source_window_base::reset): Move to
tui-winsource.c.
* tui/tui-disasm.h: Update.
* tui/tui-data.h (struct tui_exec_info_window): Move to
tui-winsource.h.
(struct tui_source_window_base): Likewise.
* tui/tui-data.c (tui_source_window_base::clear_detail)
(tui_source_window_base, ~tui_source_window_base): Move to
tui-winsource.c.
Diffstat (limited to 'gdb/tui/tui-winsource.h')
-rw-r--r-- | gdb/tui/tui-winsource.h | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h index a4907e6..ec44d1d 100644 --- a/gdb/tui/tui-winsource.h +++ b/gdb/tui/tui-winsource.h @@ -24,7 +24,87 @@ #include "tui/tui-data.h" -struct tui_win_info; +/* Execution info window class. */ + +struct tui_exec_info_window : public tui_gen_win_info +{ + tui_exec_info_window () + : tui_gen_win_info (EXEC_INFO_WIN) + { + } + + ~tui_exec_info_window () override + { + xfree (m_content); + } + + /* Get or allocate contents. */ + tui_exec_info_content *maybe_allocate_content (int n_elements); + + /* Return the contents. */ + const tui_exec_info_content *get_content () const + { + return m_content; + } + +private: + + tui_exec_info_content *m_content = nullptr; +}; + +/* The base class for all source-like windows, namely the source and + disassembly windows. */ + +struct tui_source_window_base : public tui_win_info +{ +protected: + explicit tui_source_window_base (enum tui_win_type type); + ~tui_source_window_base () override; + DISABLE_COPY_AND_ASSIGN (tui_source_window_base); + + void do_scroll_horizontal (int num_to_scroll) override; + void do_make_visible_with_new_height () override; + +public: + + void clear_detail () override; + + void make_visible (bool visible) override; + void refresh_window () override; + void refresh_all () override; + + /* Refill the source window's source cache and update it. If this + is a disassembly window, then just update it. */ + void refill (); + + /* Set the location of the execution point. */ + void set_is_exec_point_at (struct tui_line_or_address l); + + void set_new_height (int height) override; + + void update_tab_width () override; + + virtual bool location_matches_p (struct bp_location *loc, int line_no) = 0; + + void reset (int height, int width, + int origin_x, int origin_y) override; + + /* Does the locator belong to this window? */ + bool m_has_locator = false; + /* Execution information window. */ + struct tui_exec_info_window *execution_info; + /* Used for horizontal scroll. */ + int horizontal_offset = 0; + struct tui_line_or_address start_line_or_addr; + + /* It is the resolved form as returned by symtab_to_fullname. */ + char *fullname = nullptr; + + /* Architecture associated with code at this location. */ + struct gdbarch *gdbarch = nullptr; + + std::vector<tui_source_element> content; +}; /* Update the execution windows to show the active breakpoints. This is called whenever a breakpoint is inserted, removed or has its |