Use std::string in main_info

This changes main_info to use std::string.  It removes some manual
memory management.
This commit is contained in:
Tom Tromey
2022-12-30 11:23:43 -07:00
parent 632652850d
commit 25eb2931f6

View File

@@ -104,16 +104,9 @@ static struct block_symbol
struct main_info
{
main_info () = default;
~main_info ()
{
xfree (name_of_main);
}
/* Name of "main". */
char *name_of_main = nullptr;
std::string name_of_main;
/* Language of "main". */
@@ -6172,15 +6165,14 @@ set_main_name (const char *name, enum language lang)
{
struct main_info *info = get_main_info ();
if (info->name_of_main != NULL)
if (!info->name_of_main.empty ())
{
xfree (info->name_of_main);
info->name_of_main = NULL;
info->name_of_main.clear ();
info->language_of_main = language_unknown;
}
if (name != NULL)
{
info->name_of_main = xstrdup (name);
info->name_of_main = name;
info->language_of_main = lang;
}
}
@@ -6287,10 +6279,10 @@ main_name ()
{
struct main_info *info = get_main_info ();
if (info->name_of_main == NULL)
if (info->name_of_main.empty ())
find_main_name ();
return info->name_of_main;
return info->name_of_main.c_str ();
}
/* Return the language of the main function. If it is not known,
@@ -6301,7 +6293,7 @@ main_language (void)
{
struct main_info *info = get_main_info ();
if (info->name_of_main == NULL)
if (info->name_of_main.empty ())
find_main_name ();
return info->language_of_main;