From patchwork Fri Jan 21 17:30:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 50322 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F29EB3858C3A for ; Fri, 21 Jan 2022 17:33:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F29EB3858C3A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1642786383; bh=91kbS8Fdfa9YfFW0ee3fVly9Zdkz3w5S9ooFxM4qdsM=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=i9khMJmlL91Gjs3vuycPCYE6PlmEUq93Bd461XpwBarez4NOBmykqJ3mTtYLqNg5J NLEhKK3Ffa6HG3DqsGtfZ5OpJPmCwju+f2Zd95bKJAkjzzUXKYbHPBg4Bx0ldWqwPJ +9M/CHgbWvhok9GWYmDVbTdW1HeueBp6MfIvzg50= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ed1-x54a.google.com (mail-ed1-x54a.google.com [IPv6:2a00:1450:4864:20::54a]) by sourceware.org (Postfix) with ESMTPS id AF72A3857829 for ; Fri, 21 Jan 2022 17:30:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AF72A3857829 Received: by mail-ed1-x54a.google.com with SMTP id el8-20020a056402360800b00403bbdcef64so9355136edb.14 for ; Fri, 21 Jan 2022 09:30:16 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=91kbS8Fdfa9YfFW0ee3fVly9Zdkz3w5S9ooFxM4qdsM=; b=aXPkDTf4EAyKbFJ0DbN1MJsImQYS8hBp6vIj++03EyfXDI230vehht2QrQk1neyXmf qH9Weswk6rRaidgiEbepRd9s3Dc2nTE44lUnZBB/1zHE7l6/C2HChO9hov9FIjqIMTuy jBoKiUkoVhIQVxnqq0WPbPhb1uBRSqR7H/5HObU8WLHFYACL4aUmUh0Q8ZekVluJ+9Ug QJjFlP5bSTo5M5a3/LPDItLq11TkfvRwctczPax27Xniid/svfN+Q+uZ+RxL/l5auNCk hjU27YCR4DyD/m7P2g8vQe09lR9Ud37djcwH2VIAace0EIozwmw8xwFC/XNcbKqVYeZ5 tjkA== X-Gm-Message-State: AOAM532RCge74nrtJX8Jrx9uBG8e4CieNxwxxZ6LuPl5QSCPUqtKn8V3 qllJdL2gr7/jTrjTHAx3IhG3DOOkDCDrhKNW2BAoHFis9MJZtWOzBOm1PJC/Q/i8R4vrjZqcU0Q bqKh1HQKziFwz+tQsW1t3W0B01C/DemWlgKsiOc+Uz3kSHX9HKpNcVoE0eddjZlx6fMqN1y8= X-Google-Smtp-Source: ABdhPJwVITsP/+bIASSMdubp2MxJ/gY6+2nHz6tYevxC4M7xrau7rpjj0CfM9iC1BLlhtbLBV35mZDfTjy2mTQ== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:5386:4792:3248:8d5d]) (user=gprocida job=sendgmr) by 2002:a17:907:92b:: with SMTP id au11mr4099139ejc.304.1642786215572; Fri, 21 Jan 2022 09:30:15 -0800 (PST) Date: Fri, 21 Jan 2022 17:30:02 +0000 In-Reply-To: <20220121173005.3196387-1-gprocida@google.com> Message-Id: <20220121173005.3196387-2-gprocida@google.com> Mime-Version: 1.0 References: <20220121173005.3196387-1-gprocida@google.com> X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog Subject: [PATCH 1/4] XML writer: remove type_hasher and remaining comment To: libabigail@sourceware.org X-Spam-Status: No, score=-21.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" The type_hasher functor is no longer used. * src/abg-writer.cc (type_hasher): Remove this unused functor. Remove a following comment referencing it. Reviewed-by: Matthias Maennich Signed-off-by: Giuliano Procida --- src/abg-writer.cc | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 24a1fd56..525f6682 100644 --- a/src/abg-writer.cc +++ b/src/abg-writer.cc @@ -107,18 +107,9 @@ public: } }; -/// A hashing functor that should be as fast as possible. -struct type_hasher -{ - size_t - operator()(const type_base* t) const - {return hash_type(t);} -}; // end struct type_hasher - /// A convenience typedef for a map that associates a pointer to type -/// to a string. The pointer to type is hashed as fast as possible. -typedef unordered_map type_ptr_map; +/// to a string. +typedef unordered_map type_ptr_map; // A convenience typedef for a set of type_base*. typedef std::unordered_set type_ptr_set_type; From patchwork Fri Jan 21 17:30:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 50323 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0134E3858C3A for ; Fri, 21 Jan 2022 17:33:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0134E3858C3A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1642786386; bh=jh5igGfglf3GZ/OiWUv89OgTEHf+EPF+mxoHdb1maTI=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=hvK0tTKr3ZsNFYz9Br5O//1eBmjvk1Gls/vMbZw3MRLqFsBBJaEc+cQO2pQKD5ysc QQGPUORFYW+K4+AypIgEvTbA9riT76rjYRoaredJMcx0fvh/CjXkAQcxYjih7NKX+i xpi61fsNz3uqw9yk/UL3xcr7xbj7Yrr/symQNS3s= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ej1-x649.google.com (mail-ej1-x649.google.com [IPv6:2a00:1450:4864:20::649]) by sourceware.org (Postfix) with ESMTPS id 84E8D3857818 for ; Fri, 21 Jan 2022 17:30:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 84E8D3857818 Received: by mail-ej1-x649.google.com with SMTP id q19-20020a1709064c9300b006b39291ff3eso331765eju.5 for ; Fri, 21 Jan 2022 09:30:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=jh5igGfglf3GZ/OiWUv89OgTEHf+EPF+mxoHdb1maTI=; b=N/DknIcC3/LfnQtCCiWKdIoQGCaIBCsWEdBmPWV1cAnOfeIZDarN5cZBNwILSU09w2 WyATA9s3wuzMyZlXCSmzG9TwabxtHUxySUbiq3qJ/JTikU9UxZ1rTO4cyQEtYGBN2p34 6MbN1LMmU6l3TYElIhn57GzYujBVcK84yMntdQk+AjRs356tk5NbdpDL3F9o91ZOptmB +YvuCeNqqCiVQzGFusZrf0gYGoq8gxTlluVG4XCo9sA8zXcUvQEjTAFGeZBCtahjXWHE pbvbiKffLH2zIkYod5EfgJabM1tELHjNEU94tAmtOOpHp+d/DEr2P9j2glcfhNCNZ7cT zoyw== X-Gm-Message-State: AOAM530rH0/mROkzxx8oSV0UxkE7jOmykd5yDywNw9dhPwBB/lKe3ZVx WNA2rR4on5nh+YXjU1ZMzNUuREeB43Gq+mHHqrXucKEcy4aZQ2/X/d6TCzJ+VaSoJtlJUHZ8YMv g2Wi+NoR7w2UUeqqMirSdTjq/QdLTOrBWeF+iixuII26HycrDDEhHI7dGvPCTjEiB7oUu2Bc= X-Google-Smtp-Source: ABdhPJwZJT7qPpp1En+QJwFA31yZ0Z5eFrsz+4Mj3csJukPXDWNo7cJBc7TtfQSoo3wSdLZCzzN5FfiU+Af06w== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:5386:4792:3248:8d5d]) (user=gprocida job=sendgmr) by 2002:a05:6402:b33:: with SMTP id bo19mr5128730edb.70.1642786218366; Fri, 21 Jan 2022 09:30:18 -0800 (PST) Date: Fri, 21 Jan 2022 17:30:03 +0000 In-Reply-To: <20220121173005.3196387-1-gprocida@google.com> Message-Id: <20220121173005.3196387-3-gprocida@google.com> Mime-Version: 1.0 References: <20220121173005.3196387-1-gprocida@google.com> X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog Subject: [PATCH 2/4] XML writer: drop write_elf_symbols_table variable emitted_syms To: libabigail@sourceware.org X-Spam-Status: No, score=-21.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" This was introduced in commit e2d45017 and was unused then. * src/abg-writer.cc (write_elf_symbols_table): Drop unused local variable emitted_syms. Reviewed-by: Matthias Maennich Signed-off-by: Giuliano Procida --- src/abg-writer.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 525f6682..53adca24 100644 --- a/src/abg-writer.cc +++ b/src/abg-writer.cc @@ -3158,7 +3158,6 @@ write_elf_symbols_table(const elf_symbols& syms, if (syms.empty()) return false; - unordered_map emitted_syms; for (elf_symbols::const_iterator it = syms.begin(); it != syms.end(); ++it) write_elf_symbol(*it, ctxt, indent); From patchwork Fri Jan 21 17:30:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 50324 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0A7293857816 for ; Fri, 21 Jan 2022 17:33:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0A7293857816 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1642786389; bh=n11T76CSEGkIVmM34x0+eUraOsXodMiWJ2L1tmAIHIA=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=yeyqhIdnaNnKetws2w+34R2Q6AciNvypFAuxA/2st09BUBB/SQR1/xPf/n8sWA40j w5MvQygKFukliZoHISIpHdRjnLme/He8cjnTzmCS2VOj0Z6xA6Fkh5tfVMhtFonB1S d8y1CBx8cBy7K2VkWq1FnKD1mY3RjomKZ1fmsFeI= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ed1-x54a.google.com (mail-ed1-x54a.google.com [IPv6:2a00:1450:4864:20::54a]) by sourceware.org (Postfix) with ESMTPS id EF5623858435 for ; Fri, 21 Jan 2022 17:30:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EF5623858435 Received: by mail-ed1-x54a.google.com with SMTP id o25-20020a056402039900b0040631c2a67dso3155229edv.19 for ; Fri, 21 Jan 2022 09:30:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=n11T76CSEGkIVmM34x0+eUraOsXodMiWJ2L1tmAIHIA=; b=aL2IKQ4FHtXKx8B8MCzMMMcLPbG4pe+gxCasUJJaGNUkfSHokX4337THmSOJy9zCfa UcyIkRpGA2cOqX9DQV0P9Z+bJHlWdmb5i0K4hZEhkXjNvipMUpbcZFkj4sOPbmUIjCOf A/TcIRF+DaP/PXq9CwBIIVt7k0gbzB8GhEtWc+1renqYR9NyQy3L4yrDk/SJGc92Nawo K9pxECL8W2kslL7XYWbMi8bY06Bwr/evmONAPyRSvfJTKpIarignia4tJ0AAweuiMcLe PyIpb4KtfDftYb+YyK3K/RUAEVhukENvs87dvAwH+r83X6DhQK8gUuIR/ZKS4QG3/TNH PYRg== X-Gm-Message-State: AOAM5319y4fedZNq4R77sl2Uh0lv2XrWYIX/S1PWOpDkD4tb5B674uGB 8PXT9UhyeIjlTKzpKXeSGoU3S2ZtUz+xgvHMCcG+aJfBRJfdKvVKnu8UEaXkx+CUiTYzuhOIFwS 1FvrlK0Ckaqts2axZuM4Pb/2VK/y9IgGALfqQxZi1P8RFDd0udTSEZ9qRJuhe5/YHvcbPkO4= X-Google-Smtp-Source: ABdhPJxHWceLlR34uiSkO7q4nspaFOjvwa7oF9tXM4TwsAjatlz3OSox+jIhMa3gk/pPA/oDqExO9gM+NX25fw== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:5386:4792:3248:8d5d]) (user=gprocida job=sendgmr) by 2002:a17:906:c0d3:: with SMTP id bn19mr70909ejb.617.1642786221027; Fri, 21 Jan 2022 09:30:21 -0800 (PST) Date: Fri, 21 Jan 2022 17:30:04 +0000 In-Reply-To: <20220121173005.3196387-1-gprocida@google.com> Message-Id: <20220121173005.3196387-4-gprocida@google.com> Mime-Version: 1.0 References: <20220121173005.3196387-1-gprocida@google.com> X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog Subject: [PATCH 3/4] XML writer: improve slightly emission of top-level declarations To: libabigail@sourceware.org X-Spam-Status: No, score=-21.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" In the loop that emits declarations, the iterator already points to a decl_base_sptr, there is no need to do another dynamic_cast. It is also possible to simplify the loop and its conditionals. There is no change to tests or behaviour. * src/abg-writer.cc (decl_is_emitted): Make decl_base_sptr argument a const reference. (write_translation_unit): Eliminate a typedef and just use a range-for loop without the extra dynamic cast for the non-type case. Use else instead of continue to make it clear there are only two possibilities. Reviewed-by: Matthias Maennich Signed-off-by: Giuliano Procida --- src/abg-writer.cc | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 53adca24..44959a02 100644 --- a/src/abg-writer.cc +++ b/src/abg-writer.cc @@ -733,7 +733,7 @@ public: /// @return true if the decl has already been emitted, false /// otherwise. bool - decl_is_emitted(decl_base_sptr& decl) const + decl_is_emitted(const decl_base_sptr& decl) const { ABG_ASSERT(!is_type(decl)); string repr = get_pretty_representation(decl, true); @@ -2440,12 +2440,11 @@ write_translation_unit(write_context& ctxt, ctxt, indent + c.get_xml_element_indent()); typedef scope_decl::declarations declarations; - typedef declarations::const_iterator const_iterator; - const declarations& d = tu.get_global_scope()->get_sorted_member_decls(); + const declarations& decls = tu.get_global_scope()->get_sorted_member_decls(); - for (const_iterator i = d.begin(); i != d.end(); ++i) + for (const decl_base_sptr& decl : decls) { - if (type_base_sptr t = is_type(*i)) + if (type_base_sptr t = is_type(decl)) { // Emit declaration-only classes that are needed. Some of // these classes can be empty. Those beasts can be classes @@ -2456,13 +2455,12 @@ write_translation_unit(write_context& ctxt, && !ctxt.type_is_emitted(class_type)) write_type(class_type, ctxt, indent + c.get_xml_element_indent()); - continue; } - - if (decl_base_sptr d = is_decl(*i)) - if (ctxt.decl_is_emitted(d)) - continue; - write_decl(*i, ctxt, indent + c.get_xml_element_indent()); + else + { + if (!ctxt.decl_is_emitted(decl)) + write_decl(decl, ctxt, indent + c.get_xml_element_indent()); + } } write_referenced_types(ctxt, tu, indent, is_last); From patchwork Fri Jan 21 17:30:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 50325 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 11D133858C60 for ; Fri, 21 Jan 2022 17:33:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 11D133858C60 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1642786392; bh=GpPM95pvOwLmU+TUlLj5FWclMV4BrOvVunGDSpCdeSM=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=ponp6WVRfT4IMz6jq0aq8gQICJOtNUCVyW3/cPM0UQckWPiqOHIBht1/qL+Hk3HrZ dB85XBqzzVabYW3LACwm91c+DqFghm2GcUp8TE9T6kSRULL/N8CWO44d7MYhPP2WkG gDRgcCY8rC6AILewAd03uEZOKw5+m/HT8mYGqA28= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ej1-x64a.google.com (mail-ej1-x64a.google.com [IPv6:2a00:1450:4864:20::64a]) by sourceware.org (Postfix) with ESMTPS id 77843385781E for ; Fri, 21 Jan 2022 17:30:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 77843385781E Received: by mail-ej1-x64a.google.com with SMTP id o4-20020a170906768400b006a981625756so333533ejm.0 for ; Fri, 21 Jan 2022 09:30:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=GpPM95pvOwLmU+TUlLj5FWclMV4BrOvVunGDSpCdeSM=; b=OZBTSi/EreVM+LdTo0/WxkHHmzdXvBNJ+peptpK9S6LRM//3imenbGR+0H2NZfMwBZ s/a+yHxXv0NNXRU0qz7TBRnOdwqZ6dDH/YrQdB3MIMFebV5f5RhDqDewl2IBfKDLOTbQ TMHXDV1IXe9rD+IHI6RA79sQ5dYe0hyxaa1lRUsvz0roq+jM2vA8UsLSlhY1h1dS/HN+ Iog4BXnGU+A9Mixk10LKrnrIL7mtuleBvPVcn6ZA3V+T1k7BlhS/lKgzG4Se5vzA8n4x i5NniYdJNR7MjYNDFVSKJQAoVfddw1y0Mx4LmfvtDrksBz+U/K95YbWotxZaFH7+T1mL THXQ== X-Gm-Message-State: AOAM530xmvsUxG3dNWKxcNtzqANrCevyuiz8N9wAoBRhcXhUiUMIhLoq IjacBRwFV44G71q720YP2lOwLgkISOsXFCObwpNQ4PrFpIrUX7zevKEouXgYGcS/z3N3qBnVbhc DsR45VOjU4xp7i4nfDO6aP5hUxZTHrzfm/Qhl+aXuKfFCeVWAThsev7QKqj54FiiOdlmCaDw= X-Google-Smtp-Source: ABdhPJzKyyDpNbDmUqMDGwPQEwYvT5nZh8iI+UnJRNw3JWxdUKCpTGtg3qpcjrWiH3AWm/5L0weFuORJ30olMQ== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:5386:4792:3248:8d5d]) (user=gprocida job=sendgmr) by 2002:a05:6402:40d0:: with SMTP id z16mr5264153edb.68.1642786223499; Fri, 21 Jan 2022 09:30:23 -0800 (PST) Date: Fri, 21 Jan 2022 17:30:05 +0000 In-Reply-To: <20220121173005.3196387-1-gprocida@google.com> Message-Id: <20220121173005.3196387-5-gprocida@google.com> Mime-Version: 1.0 References: <20220121173005.3196387-1-gprocida@google.com> X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog Subject: [PATCH 4/4] XML writer: do not create extra temporary referenced type shared_ptr To: libabigail@sourceware.org X-Spam-Status: No, score=-21.9 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" In the loop of write_referenced_types temporary shared_ptr objects are created. In the case of a declaration, two shared_ptrs are created. It is possible to code this so only one object is created. This is a small optimisation with no change to tests or behaviour. * src/abg-writer.cc (write_referenced_types): Create temporary shared_ptr objects within each conditional branch instead of outside the conditionals and within one of the branches. Reviewed-by: Matthias Maennich Signed-off-by: Giuliano Procida --- src/abg-writer.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 44959a02..76c71a0c 100644 --- a/src/abg-writer.cc +++ b/src/abg-writer.cc @@ -2321,18 +2321,21 @@ write_referenced_types(write_context & ctxt, { // We handle types which have declarations *and* function // types here. - type_base_sptr t(*i, noop_deleter()); + type_base* t = *i; if (!ctxt.type_is_emitted(t)) { - if (decl_base* d = get_type_declaration(*i)) + if (decl_base* d = get_type_declaration(t)) { decl_base_sptr decl(d, noop_deleter()); write_decl_in_scope(decl, ctxt, indent + c.get_xml_element_indent()); } - else if (function_type_sptr fn_type = is_function_type(t)) - write_function_type(fn_type, ctxt, - indent + c.get_xml_element_indent()); + else if (function_type* f = is_function_type(t)) + { + function_type_sptr fn_type(f, noop_deleter()); + write_function_type(fn_type, ctxt, + indent + c.get_xml_element_indent()); + } else ABG_ASSERT_NOT_REACHED; }