aboutsummaryrefslogtreecommitdiff
path: root/gdb/progspace.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2020-05-08 14:21:22 -0600
committerTom Tromey <tromey@adacore.com>2020-05-08 14:21:22 -0600
commita1fd1ac9def557cbb7570cf90178a00cb26e7fef (patch)
tree2ba2b212b672aef86649fdb3ae6e3668cc49ada2 /gdb/progspace.c
parent38eae084598a3531bef4b7987a8fe646ae92a988 (diff)
downloadbinutils-a1fd1ac9def557cbb7570cf90178a00cb26e7fef.zip
binutils-a1fd1ac9def557cbb7570cf90178a00cb26e7fef.tar.gz
binutils-a1fd1ac9def557cbb7570cf90178a00cb26e7fef.tar.bz2
Remove ALL_SO_LIBS and so_list_head
This patch started as an attempt to replace ALL_SO_LIBS with an ordinary C++ iterator. However, then I tripped over the so_list_head define again, and decided to remove it as well. gdb/ChangeLog 2020-05-08 Tom Tromey <tom@tromey.com> * mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Update. * solib-svr4.c (svr4_fetch_objfile_link_map): Update. (enable_break): Update. * solib-frv.c (frv_fdpic_find_global_pointer): Update. (frv_fdpic_find_canonical_descriptor): Update. (frv_fetch_objfile_link_map): Update. * progspace.c (program_space::free_all_objfiles): Update. (program_space::solibs): New method. * progspace.h (struct program_space) <solibs>: New method. * solist.h (master_so_list): Don't declare. (ALL_SO_LIBS): Remove. * solib.h (so_list_head): Remove. (update_solib_list): Update comment. * solib.c (master_so_list): Remove. (solib_used, update_solib_list, solib_add) (info_sharedlibrary_command, clear_solib) (reload_shared_libraries_1, remove_user_added_objfile): Update.
Diffstat (limited to 'gdb/progspace.c')
-rw-r--r--gdb/progspace.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gdb/progspace.c b/gdb/progspace.c
index 6419f01..252b62e 100644
--- a/gdb/progspace.c
+++ b/gdb/progspace.c
@@ -192,10 +192,8 @@ program_space::~program_space ()
void
program_space::free_all_objfiles ()
{
- struct so_list *so;
-
/* Any objfile reference would become stale. */
- for (so = master_so_list (); so; so = so->next)
+ for (struct so_list *so : current_program_space->solibs ())
gdb_assert (so->objfile == NULL);
while (!objfiles_list.empty ())
@@ -239,6 +237,14 @@ program_space::remove_objfile (struct objfile *objfile)
symfile_object_file = NULL;
}
+/* See progspace.h. */
+
+next_adapter<struct so_list>
+program_space::solibs () const
+{
+ return next_adapter<struct so_list> (this->so_list);
+}
+
/* Copies program space SRC to DEST. Copies the main executable file,
and the main symbol file. Returns DEST. */