From 30932f40120fa64147f8b5f7d9e4c462825c4e47 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 10 Oct 2023 16:32:42 +0000 Subject: [PATCH] gdb: remove free_so function Remove this function, replace it with deleting the so_list in callers. Change-Id: Idbd0cb84674ade1d8e17af471550dbd388264f60 Approved-By: Pedro Alves Reviewed-By: Reviewed-By: Lancelot Six --- gdb/solib-svr4.c | 2 +- gdb/solib.c | 24 +++--------------------- gdb/solist.h | 14 +------------- 3 files changed, 5 insertions(+), 35 deletions(-) diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 6311599ff70..4628c487ff7 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 4594587a134..a137fbbd123 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 e22fd207c39..c9ab49a6075 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_up; +using so_list_up = std::unique_ptr; /* Find main executable binary file. */ extern gdb::unique_xmalloc_ptr exec_file_find (const char *in_pathname, -- 2.30.2