diff options
-rw-r--r-- | gdb/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/tui/tui-source.c | 7 | ||||
-rw-r--r-- | gdb/tui/tui-source.h | 3 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.c | 5 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.h | 5 |
5 files changed, 19 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3d32287..9f7accd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,17 @@ 2019-09-20 Tom Tromey <tom@tromey.com> + * tui/tui-winsource.h (struct tui_source_window_base) + <~tui_source_window_base>: Don't declare. + <fullname>: Remove. + * tui/tui-winsource.c (~tui_source_window_base): Remove. + * tui/tui-source.h (struct tui_source_window) <fullname>: New + member. + * tui/tui-source.c (tui_source_window::set_contents): Update. + (tui_source_window::location_matches_p) + (tui_source_window::maybe_update): Update. + +2019-09-20 Tom Tromey <tom@tromey.com> + * tui/tui-winsource.h (~tui_source_element): Remove. (tui_source_element): Update. (struct tui_source_element) <line>: Now a unique_xmalloc_ptr. diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c index c379173..f70e053 100644 --- a/gdb/tui/tui-source.c +++ b/gdb/tui/tui-source.c @@ -155,8 +155,7 @@ tui_source_window::set_contents (struct gdbarch *arch, title = s_filename; - xfree (fullname); - fullname = xstrdup (symtab_to_fullname (s)); + fullname = make_unique_xstrdup (symtab_to_fullname (s)); cur_line = 0; gdbarch = get_objfile_arch (SYMTAB_OBJFILE (s)); @@ -276,7 +275,7 @@ tui_source_window::location_matches_p (struct bp_location *loc, int line_no) return (content[line_no].line_or_addr.loa == LOA_LINE && content[line_no].line_or_addr.u.line_no == loc->line_number && loc->symtab != NULL - && filename_cmp (fullname, + && filename_cmp (fullname.get (), symtab_to_fullname (loc->symtab)) == 0); } @@ -308,7 +307,7 @@ tui_source_window::maybe_update (struct frame_info *fi, symtab_and_line sal, start_line = 1; bool source_already_displayed = (sal.symtab != 0 - && showing_source_p (fullname)); + && showing_source_p (fullname.get ())); struct tui_line_or_address l; diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h index a700212..30728e4 100644 --- a/gdb/tui/tui-source.h +++ b/gdb/tui/tui-source.h @@ -76,6 +76,9 @@ private: in the current source window. */ bool line_is_displayed (int line) const; + /* It is the resolved form as returned by symtab_to_fullname. */ + gdb::unique_xmalloc_ptr<char> fullname; + /* A token used to register and unregister an observer. */ gdb::observers::token m_observable; }; diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index d528119..8b507ed 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -261,11 +261,6 @@ tui_source_window_base::tui_source_window_base (enum tui_win_type type) } -tui_source_window_base::~tui_source_window_base () -{ - xfree (fullname); -} - /* See tui-data.h. */ void diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h index 64f0739..eca0bde 100644 --- a/gdb/tui/tui-winsource.h +++ b/gdb/tui/tui-winsource.h @@ -78,7 +78,7 @@ 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; @@ -137,9 +137,6 @@ public: 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; |