From 9923f347c4e4b9ed710de3404444cf46b04135a0 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 1 Sep 2019 08:13:24 -0600 Subject: [PATCH] Change members of tui_locator_window to std::string This changes two members of tui_locator_window to have type std::string. This removes a static limit. gdb/ChangeLog 2019-09-20 Tom Tromey * tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define. (struct tui_locator_window) : Now std::string. * tui/tui-stack.c (tui_locator_window::make_status_line) (tui_locator_window::set_locator_fullname) (tui_locator_window::set_locator_info): Update. * tui/tui-source.c (tui_source_window::set_contents) (tui_source_window::showing_source_p): Update. --- gdb/ChangeLog | 11 +++++++++++ gdb/tui/tui-source.c | 4 ++-- gdb/tui/tui-stack.c | 18 +++++++----------- gdb/tui/tui-stack.h | 10 ++-------- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 401c74242e1..8d586e72f0f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2019-09-20 Tom Tromey + + * tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define. + (struct tui_locator_window) : Now + std::string. + * tui/tui-stack.c (tui_locator_window::make_status_line) + (tui_locator_window::set_locator_fullname) + (tui_locator_window::set_locator_info): Update. + * tui/tui-source.c (tui_source_window::set_contents) + (tui_source_window::showing_source_p): Update. + 2019-09-20 Tom Tromey * tui/tui-stack.c (tui_locator_window::set_locator_fullname): diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c index f70e053bdb5..e6cc0dbc1a3 100644 --- a/gdb/tui/tui-source.c +++ b/gdb/tui/tui-source.c @@ -179,7 +179,7 @@ tui_source_window::set_contents (struct gdbarch *arch, element->line_or_addr.loa = LOA_LINE; element->line_or_addr.u.line_no = cur_line_no; element->is_exec_point - = (filename_cmp (locator->full_name, + = (filename_cmp (locator->full_name.c_str (), symtab_to_fullname (s)) == 0 && cur_line_no == locator->line_no); @@ -213,7 +213,7 @@ bool tui_source_window::showing_source_p (const char *fullname) const { return (!content.empty () - && (filename_cmp (tui_locator_win_info_ptr ()->full_name, + && (filename_cmp (tui_locator_win_info_ptr ()->full_name.c_str (), fullname) == 0)); } diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c index 830187995be..d66e3589e42 100644 --- a/gdb/tui/tui-stack.c +++ b/gdb/tui/tui-stack.c @@ -166,12 +166,12 @@ tui_locator_window::make_status_line () const /* Procedure/class name. */ if (proc_width > 0) { - if (strlen (proc_name) > proc_width) + if (proc_name.size () > proc_width) string.printf ("%s%*.*s* ", PROC_PREFIX, - 1 - proc_width, proc_width - 1, proc_name); + 1 - proc_width, proc_width - 1, proc_name.c_str ()); else string.printf ("%s%*.*s ", PROC_PREFIX, - -proc_width, proc_width, proc_name); + -proc_width, proc_width, proc_name.c_str ()); } if (line_width > 0) @@ -250,8 +250,7 @@ tui_locator_window::rerender () void tui_locator_window::set_locator_fullname (const char *fullname) { - full_name[0] = 0; - strcat_to_buf (full_name, MAX_LOCATOR_ELEMENT_LEN, fullname); + full_name = fullname; rerender (); } @@ -272,16 +271,13 @@ tui_locator_window::set_locator_info (struct gdbarch *gdbarch_in, if (fullname == NULL) fullname = ""; - locator_changed_p |= strncmp (proc_name, procname, - MAX_LOCATOR_ELEMENT_LEN) != 0; + locator_changed_p |= proc_name != procname; locator_changed_p |= lineno != line_no; locator_changed_p |= addr_in != addr; locator_changed_p |= gdbarch_in != gdbarch; - locator_changed_p |= strncmp (full_name, fullname, - MAX_LOCATOR_ELEMENT_LEN) != 0; + locator_changed_p |= full_name != fullname; - proc_name[0] = (char) 0; - strcat_to_buf (proc_name, MAX_LOCATOR_ELEMENT_LEN, procname); + proc_name = procname; line_no = lineno; addr = addr_in; gdbarch = gdbarch_in; diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h index b6ffa986a6f..93a79fbd799 100644 --- a/gdb/tui/tui-stack.h +++ b/gdb/tui/tui-stack.h @@ -26,12 +26,6 @@ struct frame_info; -#ifdef PATH_MAX -# define MAX_LOCATOR_ELEMENT_LEN PATH_MAX -#else -# define MAX_LOCATOR_ELEMENT_LEN 1024 -#endif - /* Locator window class. */ struct tui_locator_window : public tui_gen_win_info @@ -57,8 +51,8 @@ struct tui_locator_window : public tui_gen_win_info /* Set the full_name portion of the locator. */ void set_locator_fullname (const char *fullname); - char full_name[MAX_LOCATOR_ELEMENT_LEN]; - char proc_name[MAX_LOCATOR_ELEMENT_LEN]; + std::string full_name; + std::string proc_name; int line_no = 0; CORE_ADDR addr = 0; /* Architecture associated with code at this location. */ -- 2.30.2