diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2023-10-19 10:55:38 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2023-10-19 10:57:51 -0400 |
commit | 8971d2788e79db2ffc1205ed36935483eedf2fab (patch) | |
tree | ff5dead00b54316d0786af5c6558c41f6407c143 /gdb/solib-target.c | |
parent | 98107b0b17acd9d2c28829cbe93a75b72677d220 (diff) | |
download | binutils-8971d2788e79db2ffc1205ed36935483eedf2fab.zip binutils-8971d2788e79db2ffc1205ed36935483eedf2fab.tar.gz binutils-8971d2788e79db2ffc1205ed36935483eedf2fab.tar.bz2 |
gdb: link so_list using intrusive_list
Replace the hand-made linked list implementation with intrusive_list,
simplying management of list items.
Change-Id: I7f55fd88325bb197cc655c9be5a2ec966d8cc48d
Approved-By: Pedro Alves <pedro@palves.net>
Reviewed-By: Reviewed-By: Lancelot Six <lancelot.six@amd.com>
Diffstat (limited to 'gdb/solib-target.c')
-rw-r--r-- | gdb/solib-target.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/gdb/solib-target.c b/gdb/solib-target.c index 0881d7e..2e1c74f 100644 --- a/gdb/solib-target.c +++ b/gdb/solib-target.c @@ -227,25 +227,22 @@ solib_target_parse_libraries (const char *library) } #endif -static struct so_list * +static intrusive_list<so_list> solib_target_current_sos (void) { - so_list *start = NULL, *last = NULL; + intrusive_list<so_list> sos; /* Fetch the list of shared libraries. */ gdb::optional<gdb::char_vector> library_document = target_read_stralloc (current_inferior ()->top_target (), TARGET_OBJECT_LIBRARIES, NULL); if (!library_document) - return NULL; + return {}; /* Parse the list. */ std::vector<lm_info_target_up> library_list = solib_target_parse_libraries (library_document->data ()); - if (library_list.empty ()) - return NULL; - /* Build a struct so_list for each entry on the list. */ for (lm_info_target_up &info : library_list) { @@ -257,16 +254,10 @@ solib_target_current_sos (void) new_solib->lm_info = std::move (info); /* Add it to the list. */ - if (!start) - last = start = new_solib; - else - { - last->next = new_solib; - last = new_solib; - } + sos.push_back (*new_solib); } - return start; + return sos; } static void |