This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 1/3] Use unique_xmalloc_ptr in two solib functions
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Sun, 27 May 2018 15:00:55 -0600
- Subject: [RFA 1/3] Use unique_xmalloc_ptr in two solib functions
- References: <20180527210057.12554-1-tom@tromey.com>
This removes a couple of cleanups by using unique_xmalloc_ptr instead.
These two changes are combined because the two functions are very
similar.
ChangeLog
2018-05-27 Tom Tromey <tom@tromey.com>
* solib-frv.c (frv_relocate_main_executable): Use
unique_xmalloc_ptr.
* solib-dsbt.c (dsbt_relocate_main_executable): Use
unique_xmalloc_ptr.
---
gdb/ChangeLog | 7 +++++++
gdb/solib-dsbt.c | 11 +++--------
gdb/solib-frv.c | 11 +++--------
3 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 9868606249b..1c471133d04 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -918,8 +918,6 @@ static void
dsbt_relocate_main_executable (void)
{
struct int_elf32_dsbt_loadmap *ldm;
- struct cleanup *old_chain;
- struct section_offsets *new_offsets;
int changed;
struct obj_section *osect;
struct dsbt_info *info = get_dsbt_info ();
@@ -931,9 +929,8 @@ dsbt_relocate_main_executable (void)
info->main_executable_lm_info = new lm_info_dsbt;
info->main_executable_lm_info->map = ldm;
- new_offsets = XCNEWVEC (struct section_offsets,
- symfile_objfile->num_sections);
- old_chain = make_cleanup (xfree, new_offsets);
+ gdb::unique_xmalloc_ptr<struct section_offsets> new_offsets
+ (XCNEWVEC (struct section_offsets, symfile_objfile->num_sections));
changed = 0;
ALL_OBJFILE_OSECTIONS (symfile_objfile, osect)
@@ -967,9 +964,7 @@ dsbt_relocate_main_executable (void)
}
if (changed)
- objfile_relocate (symfile_objfile, new_offsets);
-
- do_cleanups (old_chain);
+ objfile_relocate (symfile_objfile, new_offsets.get ());
/* Now that symfile_objfile has been relocated, we can compute the
GOT value and stash it away. */
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index e772da61156..6ebc6d4b520 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -769,8 +769,6 @@ frv_relocate_main_executable (void)
int status;
CORE_ADDR exec_addr, interp_addr;
struct int_elf32_fdpic_loadmap *ldm;
- struct cleanup *old_chain;
- struct section_offsets *new_offsets;
int changed;
struct obj_section *osect;
@@ -792,9 +790,8 @@ frv_relocate_main_executable (void)
main_executable_lm_info = new lm_info_frv;
main_executable_lm_info->map = ldm;
- new_offsets = XCNEWVEC (struct section_offsets,
- symfile_objfile->num_sections);
- old_chain = make_cleanup (xfree, new_offsets);
+ gdb::unique_xmalloc_ptr<struct section_offsets> new_offsets
+ (XCNEWVEC (struct section_offsets, symfile_objfile->num_sections));
changed = 0;
ALL_OBJFILE_OSECTIONS (symfile_objfile, osect)
@@ -828,9 +825,7 @@ frv_relocate_main_executable (void)
}
if (changed)
- objfile_relocate (symfile_objfile, new_offsets);
-
- do_cleanups (old_chain);
+ objfile_relocate (symfile_objfile, new_offsets.get ());
/* Now that symfile_objfile has been relocated, we can compute the
GOT value and stash it away. */
--
2.13.6