From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [RFA 1/2] Use std::string in execute_script_contents
Date: Fri, 09 Feb 2018 12:56:00 -0000 [thread overview]
Message-ID: <20180209125553.7392-2-tom@tromey.com> (raw)
In-Reply-To: <20180209125553.7392-1-tom@tromey.com>
This changes execute_script_contents to use a std::string, allowing
the removal of a cleanup.
2018-02-09 Tom Tromey <tom@tromey.com>
* auto-load.c (execute_script_contents): Use std::string.
---
gdb/ChangeLog | 4 ++++
gdb/auto-load.c | 17 +++++------------
2 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3e5b324472..adc3d19d3b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2018-02-09 Tom Tromey <tom@tromey.com>
+
+ * auto-load.c (execute_script_contents): Use std::string.
+
2018-02-09 Joel Brobecker <brobecker@adacore.com>
* NEWS <Changes in GDB 8.1>: Clarify that "rbreak" is a new
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 30c8b89e8e..1f3d366a56 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -989,23 +989,21 @@ execute_script_contents (struct auto_load_pspace_info *pspace_info,
{
objfile_script_executor_func *executor;
const char *newline, *script_text;
- char *name;
+ const char *name;
int is_safe, in_hash_table;
- struct cleanup *cleanups;
-
- cleanups = make_cleanup (null_cleanup, NULL);
/* The first line of the script is the name of the script.
It must not contain any kind of space character. */
name = NULL;
newline = strchr (script, '\n');
+ std::string name_holder;
if (newline != NULL)
{
- char *buf, *p;
+ const char *buf, *p;
/* Put the name in a buffer and validate it. */
- buf = xstrndup (script, newline - script);
- make_cleanup (xfree, buf);
+ name_holder = std::string (script, newline - script);
+ buf = name_holder.c_str ();
for (p = buf; *p != '\0'; ++p)
{
if (isspace (*p))
@@ -1022,7 +1020,6 @@ execute_script_contents (struct auto_load_pspace_info *pspace_info,
Missing/bad script name in entry at offset %u in section %s\n\
of file %s."),
offset, section_name, objfile_name (objfile));
- do_cleanups (cleanups);
return;
}
script_text = newline + 1;
@@ -1035,7 +1032,6 @@ of file %s."),
maybe_print_unsupported_script_warning (pspace_info, objfile, language,
section_name, offset);
maybe_add_script_text (pspace_info, 0, name, language);
- do_cleanups (cleanups);
return;
}
@@ -1043,7 +1039,6 @@ of file %s."),
if (!ext_lang_auto_load_enabled (language))
{
/* No message is printed, just skip it. */
- do_cleanups (cleanups);
return;
}
@@ -1059,8 +1054,6 @@ of file %s."),
/* If this file is not currently loaded, load it. */
if (is_safe && !in_hash_table)
executor (language, objfile, name, script_text);
-
- do_cleanups (cleanups);
}
/* Load scripts specified in OBJFILE.
--
2.13.6
next prev parent reply other threads:[~2018-02-09 12:56 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-09 12:55 [RFA 0/2] two more minor cleanup removals Tom Tromey
2018-02-09 12:55 ` [RFA 2/2] Use gdb::unique_xmalloc_ptr in auto_load_section_scripts Tom Tromey
2018-02-09 12:56 ` Tom Tromey [this message]
2018-02-09 12:59 ` [RFA 0/2] two more minor cleanup removals Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180209125553.7392-2-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).