gdb: use std::string in partial_symtab::partial_symtab / allocate_symtab

This simplifies the code a bit.

gdb/ChangeLog:

	* psymtab.c (partial_symtab::partial_symtab): Change
	last_objfile_name to be an std::string.
	* symfile.c (allocate_symtab): Likewise.

Change-Id: I3dfe217233ed9346c2abc04a9b1be0df69a90af8
This commit is contained in:
Simon Marchi 2021-04-02 11:39:55 -04:00
parent 4a4f97c129
commit 9984dd9994
3 changed files with 16 additions and 12 deletions

View file

@ -1,3 +1,9 @@
2021-04-02 Simon Marchi <simon.marchi@polymtl.ca>
* psymtab.c (partial_symtab::partial_symtab): Change
last_objfile_name to be an std::string.
* symfile.c (allocate_symtab): Likewise.
2021-04-02 Simon Marchi <simon.marchi@polymtl.ca> 2021-04-02 Simon Marchi <simon.marchi@polymtl.ca>
* objfiles.h (struct objfile_per_bfd_storage) <intern>: New * objfiles.h (struct objfile_per_bfd_storage) <intern>: New

View file

@ -1574,16 +1574,15 @@ partial_symtab::partial_symtab (const char *filename_,
{ {
/* Be a bit clever with debugging messages, and don't print objfile /* Be a bit clever with debugging messages, and don't print objfile
every time, only when it changes. */ every time, only when it changes. */
static char *last_objfile_name = NULL; static std::string last_objfile_name;
const char *this_objfile_name = objfile_name (objfile);
if (last_objfile_name == NULL if (last_objfile_name.empty () || last_objfile_name != this_objfile_name)
|| strcmp (last_objfile_name, objfile_name (objfile)) != 0)
{ {
xfree (last_objfile_name); last_objfile_name = this_objfile_name;
last_objfile_name = xstrdup (objfile_name (objfile));
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
"Creating one or more psymtabs for objfile %s ...\n", "Creating one or more psymtabs for objfile %s ...\n",
last_objfile_name); this_objfile_name);
} }
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
"Created psymtab %s for module %s.\n", "Created psymtab %s for module %s.\n",

View file

@ -2770,16 +2770,15 @@ allocate_symtab (struct compunit_symtab *cust, const char *filename)
{ {
/* Be a bit clever with debugging messages, and don't print objfile /* Be a bit clever with debugging messages, and don't print objfile
every time, only when it changes. */ every time, only when it changes. */
static char *last_objfile_name = NULL; static std::string last_objfile_name;
const char *this_objfile_name = objfile_name (objfile);
if (last_objfile_name == NULL if (last_objfile_name.empty () || last_objfile_name != this_objfile_name)
|| strcmp (last_objfile_name, objfile_name (objfile)) != 0)
{ {
xfree (last_objfile_name); last_objfile_name = this_objfile_name;
last_objfile_name = xstrdup (objfile_name (objfile));
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
"Creating one or more symtabs for objfile %s ...\n", "Creating one or more symtabs for objfile %s ...\n",
last_objfile_name); this_objfile_name);
} }
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
"Created symtab %s for module %s.\n", "Created symtab %s for module %s.\n",