From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id E74923858C01 for ; Tue, 10 Oct 2023 20:44:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E74923858C01 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com Received: from smarchi-efficios.internal.efficios.com (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 40B7C1E1A8; Tue, 10 Oct 2023 16:44:18 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 14/24] gdb: remove lm_info_vector typedef Date: Tue, 10 Oct 2023 16:40:09 -0400 Message-ID: <20231010204213.111285-15-simon.marchi@efficios.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010204213.111285-1-simon.marchi@efficios.com> References: <20231010204213.111285-1-simon.marchi@efficios.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3496.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_SOFTFAIL,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: I think this typedef hinders readability. First, it's not well named (it's not clear it contains lm_info_target objects). And hiding the fact that it contains unique pointers is not very useful either. I was looking at the code in solib_target_current_sos where the unique pointers get moved from the vector, and it wasn't obvious at all what the source of the move was. Change-Id: I4a5cda7c90554f018b7c466b1535b41d69cbcbe7 --- gdb/solib-target.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gdb/solib-target.c b/gdb/solib-target.c index 05b35103091e..e20a336f9ad3 100644 --- a/gdb/solib-target.c +++ b/gdb/solib-target.c @@ -50,7 +50,7 @@ struct lm_info_target final : public lm_info section_offsets offsets; }; -typedef std::vector> lm_info_vector; +using lm_info_target_up = std::unique_ptr; #if !defined(HAVE_LIBEXPAT) @@ -81,7 +81,7 @@ library_list_start_segment (struct gdb_xml_parser *parser, void *user_data, std::vector &attributes) { - lm_info_vector *list = (lm_info_vector *) user_data; + auto *list = (std::vector *) user_data; lm_info_target *last = list->back ().get (); ULONGEST *address_p = (ULONGEST *) xml_find_attribute (attributes, "address")->value.get (); @@ -100,7 +100,7 @@ library_list_start_section (struct gdb_xml_parser *parser, void *user_data, std::vector &attributes) { - lm_info_vector *list = (lm_info_vector *) user_data; + auto *list = (std::vector *) user_data; lm_info_target *last = list->back ().get (); ULONGEST *address_p = (ULONGEST *) xml_find_attribute (attributes, "address")->value.get (); @@ -121,7 +121,7 @@ library_list_start_library (struct gdb_xml_parser *parser, void *user_data, std::vector &attributes) { - lm_info_vector *list = (lm_info_vector *) user_data; + auto *list = (std::vector *) user_data; lm_info_target *item = new lm_info_target; item->name = (const char *) xml_find_attribute (attributes, "name")->value.get (); @@ -134,7 +134,7 @@ library_list_end_library (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, const char *body_text) { - lm_info_vector *list = (lm_info_vector *) user_data; + auto *list = (std::vector *) user_data; lm_info_target *lm_info = list->back ().get (); if (lm_info->segment_bases.empty () && lm_info->section_bases.empty ()) @@ -210,10 +210,10 @@ static const struct gdb_xml_element library_list_elements[] = { { NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL } }; -static lm_info_vector +static std::vector solib_target_parse_libraries (const char *library) { - lm_info_vector result; + std::vector result; if (gdb_xml_parse_quick (_("target library list"), "library-list.dtd", library_list_elements, library, &result) == 0) @@ -240,14 +240,14 @@ solib_target_current_sos (void) return NULL; /* Parse the list. */ - lm_info_vector library_list + std::vector 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 (auto &&info : library_list) + for (lm_info_target_up &info : library_list) { so_list *new_solib = new so_list; strncpy (new_solib->so_name, info->name.c_str (), -- 2.42.0