diff options
author | Tom Tromey <tom@tromey.com> | 2020-05-08 14:21:22 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-05-08 14:21:22 -0600 |
commit | a1fd1ac9def557cbb7570cf90178a00cb26e7fef (patch) | |
tree | 2ba2b212b672aef86649fdb3ae6e3668cc49ada2 /gdb/progspace.c | |
parent | 38eae084598a3531bef4b7987a8fe646ae92a988 (diff) | |
download | binutils-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.c | 12 |
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. */ |