Patchwork [14/20] Change members of tui_locator_window to std::string

login
register
mail settings
Submitter Tom Tromey
Date Sept. 10, 2019, 7:08 p.m.
Message ID <20190910190857.6562-15-tom@tromey.com>
Download mbox | patch
Permalink /patch/34484/
State New
Headers show

Comments

Tom Tromey - Sept. 10, 2019, 7:08 p.m.
This changes two members of tui_locator_window to have type
std::string.  This removes a static limit.

gdb/ChangeLog
2019-09-10  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.
---
 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(-)

Patch

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