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  <tom@tromey.com>

	* tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
	(struct tui_locator_window) <full_name, proc_name>: 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.
This commit is contained in:
Tom Tromey 2019-09-01 08:13:24 -06:00
parent b76251abaf
commit 9923f347c4
4 changed files with 22 additions and 21 deletions

View File

@ -1,3 +1,14 @@
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
(struct tui_locator_window) <full_name, proc_name>: 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 <tom@tromey.com>
* tui/tui-stack.c (tui_locator_window::set_locator_fullname):

View File

@ -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));
}

View File

@ -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;

View File

@ -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. */