[RFA] Removes a cleanup from gcore.c
Commit Message
This removes a cleanup from gcore.c, replacing it with
unique_xmalloc_ptr.
Regression tested by the buildbot.
ChangeLog
2017-11-25 Tom Tromey <tom@tromey.com>
* gcore.c (write_gcore_file_1): Use gdb::unique_xmalloc_ptr.
---
gdb/ChangeLog | 4 ++++
gdb/gcore.c | 15 ++++++---------
2 files changed, 10 insertions(+), 9 deletions(-)
Comments
On 2017-11-25 16:12, Tom Tromey wrote:
> This removes a cleanup from gcore.c, replacing it with
> unique_xmalloc_ptr.
>
> Regression tested by the buildbot.
>
> ChangeLog
> 2017-11-25 Tom Tromey <tom@tromey.com>
>
> * gcore.c (write_gcore_file_1): Use gdb::unique_xmalloc_ptr.
> ---
> gdb/ChangeLog | 4 ++++
> gdb/gcore.c | 15 ++++++---------
> 2 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/gdb/gcore.c b/gdb/gcore.c
> index 0d5dccab61..359ec3df84 100644
> --- a/gdb/gcore.c
> +++ b/gdb/gcore.c
> @@ -68,8 +68,7 @@ create_gcore_bfd (const char *filename)
> static void
> write_gcore_file_1 (bfd *obfd)
> {
> - struct cleanup *cleanup;
> - void *note_data = NULL;
> + gdb::unique_xmalloc_ptr<char> note_data;
> int note_size = 0;
> asection *note_sec = NULL;
>
> @@ -78,11 +77,10 @@ write_gcore_file_1 (bfd *obfd)
> generation should be converted to gdbarch_make_corefile_notes; at
> that
> point, the target vector method can be removed. */
> if (!gdbarch_make_corefile_notes_p (target_gdbarch ()))
> - note_data = target_make_corefile_notes (obfd, ¬e_size);
> + note_data.reset (target_make_corefile_notes (obfd, ¬e_size));
> else
> - note_data = gdbarch_make_corefile_notes (target_gdbarch (), obfd,
> ¬e_size);
> -
> - cleanup = make_cleanup (xfree, note_data);
> + note_data.reset (gdbarch_make_corefile_notes (target_gdbarch (),
> obfd,
> + ¬e_size));
>
> if (note_data == NULL || note_size == 0)
> error (_("Target does not support core file generation."));
> @@ -105,10 +103,9 @@ write_gcore_file_1 (bfd *obfd)
> error (_("gcore: failed to get corefile memory sections from
> target."));
>
> /* Write out the contents of the note section. */
> - if (!bfd_set_section_contents (obfd, note_sec, note_data, 0,
> note_size))
> + if (!bfd_set_section_contents (obfd, note_sec, note_data.get (), 0,
> + note_size))
> warning (_("writing note section (%s)"), bfd_errmsg (bfd_get_error
> ()));
> -
> - do_cleanups (cleanup);
> }
>
> /* write_gcore_file -- helper for gcore_command (exported).
LGTM.
@@ -68,8 +68,7 @@ create_gcore_bfd (const char *filename)
static void
write_gcore_file_1 (bfd *obfd)
{
- struct cleanup *cleanup;
- void *note_data = NULL;
+ gdb::unique_xmalloc_ptr<char> note_data;
int note_size = 0;
asection *note_sec = NULL;
@@ -78,11 +77,10 @@ write_gcore_file_1 (bfd *obfd)
generation should be converted to gdbarch_make_corefile_notes; at that
point, the target vector method can be removed. */
if (!gdbarch_make_corefile_notes_p (target_gdbarch ()))
- note_data = target_make_corefile_notes (obfd, ¬e_size);
+ note_data.reset (target_make_corefile_notes (obfd, ¬e_size));
else
- note_data = gdbarch_make_corefile_notes (target_gdbarch (), obfd, ¬e_size);
-
- cleanup = make_cleanup (xfree, note_data);
+ note_data.reset (gdbarch_make_corefile_notes (target_gdbarch (), obfd,
+ ¬e_size));
if (note_data == NULL || note_size == 0)
error (_("Target does not support core file generation."));
@@ -105,10 +103,9 @@ write_gcore_file_1 (bfd *obfd)
error (_("gcore: failed to get corefile memory sections from target."));
/* Write out the contents of the note section. */
- if (!bfd_set_section_contents (obfd, note_sec, note_data, 0, note_size))
+ if (!bfd_set_section_contents (obfd, note_sec, note_data.get (), 0,
+ note_size))
warning (_("writing note section (%s)"), bfd_errmsg (bfd_get_error ()));
-
- do_cleanups (cleanup);
}
/* write_gcore_file -- helper for gcore_command (exported).