aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2023-10-10 16:32:42 +0000
committerSimon Marchi <simon.marchi@efficios.com>2023-10-19 10:57:51 -0400
commit30932f40120fa64147f8b5f7d9e4c462825c4e47 (patch)
tree1b9351136034ac81c56a92a0f75c94e5d252418e /gdb
parent38dc8f35f92f9b0f7306eaa8ee26097b1e8f4d3f (diff)
downloadgdb-30932f40120fa64147f8b5f7d9e4c462825c4e47.zip
gdb-30932f40120fa64147f8b5f7d9e4c462825c4e47.tar.gz
gdb-30932f40120fa64147f8b5f7d9e4c462825c4e47.tar.bz2
gdb: remove free_so function
Remove this function, replace it with deleting the so_list in callers. Change-Id: Idbd0cb84674ade1d8e17af471550dbd388264f60 Approved-By: Pedro Alves <pedro@palves.net> Reviewed-By: Reviewed-By: Lancelot Six <lancelot.six@amd.com>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/solib-svr4.c2
-rw-r--r--gdb/solib.c24
-rw-r--r--gdb/solist.h14
3 files changed, 5 insertions, 35 deletions
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 6311599..4628c48 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1478,7 +1478,7 @@ svr4_current_sos ()
if (address_in_mem_range (li->l_ld, &vsyscall_range))
{
auto next = sos.erase (so);
- free_so (*so);
+ delete &*so;
so = next;
break;
}
diff --git a/gdb/solib.c b/gdb/solib.c
index 4594587..a137fbb 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -650,24 +650,6 @@ so_list::clear ()
lm_info::~lm_info () = default;
-/* Free the storage associated with the `struct so_list' object SO.
- If we have opened a BFD for SO, close it.
-
- The caller is responsible for removing SO from whatever list it is
- a member of. If we have placed SO's sections in some target's
- section table, the caller is responsible for removing them.
-
- This function doesn't mess with objfiles at all. If there is an
- objfile associated with SO that needs to be removed, the caller is
- responsible for taking care of that. */
-
-void
-free_so (so_list &so)
-{
- delete &so;
-}
-
-
/* Read in symbols for shared object SO. If SYMFILE_VERBOSE is set in FLAGS,
be chatty about it. Return true if any symbols were actually loaded. */
@@ -845,7 +827,7 @@ update_solib_list (int from_tty)
if (inferior_iter != inferior.end ())
{
inferior.erase (inferior_iter);
- free_so (*inferior_iter);
+ delete &*inferior_iter;
++gdb_iter;
}
@@ -871,7 +853,7 @@ update_solib_list (int from_tty)
sections from so.abfd; remove them. */
current_program_space->remove_target_sections (&*gdb_iter);
- free_so (*gdb_iter);
+ delete &*gdb_iter;
gdb_iter = gdb_iter_next;
}
}
@@ -1215,7 +1197,7 @@ clear_solib (void)
{
notify_solib_unloaded (current_program_space, *so);
current_program_space->remove_target_sections (&so);
- free_so (*so);
+ delete so;
});
diff --git a/gdb/solist.h b/gdb/solist.h
index e22fd20..c9ab49a 100644
--- a/gdb/solist.h
+++ b/gdb/solist.h
@@ -169,20 +169,8 @@ struct target_so_ops
void (*handle_event) (void);
};
-/* Free the memory associated with a (so_list *). */
-void free_so (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;
+using so_list_up = std::unique_ptr<so_list>;
/* Find main executable binary file. */
extern gdb::unique_xmalloc_ptr<char> exec_file_find (const char *in_pathname,