aboutsummaryrefslogtreecommitdiff
path: root/gdb/solist.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-04-28 22:43:54 -0600
committerTom Tromey <tom@tromey.com>2017-08-03 07:58:59 -0600
commitb3bc84537bc6de78e2bbd550ce9c57dd4b7e2ec6 (patch)
tree26d6e6f337d8b20f02876c2b36b990b4a1a5c6fc /gdb/solist.h
parente3ad2841b1c75837a901618651fed23013643e3f (diff)
downloadfsf-binutils-gdb-b3bc84537bc6de78e2bbd550ce9c57dd4b7e2ec6.zip
fsf-binutils-gdb-b3bc84537bc6de78e2bbd550ce9c57dd4b7e2ec6.tar.gz
fsf-binutils-gdb-b3bc84537bc6de78e2bbd550ce9c57dd4b7e2ec6.tar.bz2
Remove make_cleanup_free_so
make_cleanup_free_so is used in a single spot. This patch introduces a unique pointer wrapper for struct so_list, and changes this spot to use it. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * utils.h (make_cleanup_free_so): Remove. * utils.c (do_free_so, make_cleanup_free_so): Remove. * solist.h (struct so_deleter): New. (so_list_up): New typedef. * solib-svr4.c (svr4_read_so_list): Use so_list_up.
Diffstat (limited to 'gdb/solist.h')
-rw-r--r--gdb/solist.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/solist.h b/gdb/solist.h
index 54c9902..5eb2d39 100644
--- a/gdb/solist.h
+++ b/gdb/solist.h
@@ -179,6 +179,18 @@ struct target_so_ops
/* Free the memory associated with a (so_list *). */
void free_so (struct so_list *so);
+/* A deleter that calls free_so. */
+struct so_deleter
+{
+ void operator() (struct so_list *so) const
+ {
+ free_so (so);
+ }
+};
+
+/* A unique pointer to a so_list. */
+typedef std::unique_ptr<so_list, so_deleter> so_list_up;
+
/* Return address of first so_list entry in master shared object list. */
struct so_list *master_so_list (void);