From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <3llKdXggKCqsXLPYYTNSRZZRWP.NZXWTMLMTRLTWdZfcNPhLcP.ZcR@flex--maennich.bounces.google.com> Received: from mail-wm1-x349.google.com (mail-wm1-x349.google.com [IPv6:2a00:1450:4864:20::349]) by sourceware.org (Postfix) with ESMTPS id EE8253858D31 for ; Mon, 20 Apr 2020 07:43:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EE8253858D31 Received: by mail-wm1-x349.google.com with SMTP id n127so3219495wme.4 for ; Mon, 20 Apr 2020 00:43:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=pa8F5xYPuz+cMe1l0/nwtgFPREF3aa8yzLHDKxWpBrE=; b=oDhpNsZJuC6esvSSWXJM283JTw9100/32kJE2XusJI6GzIRjJk5cWZNnO5v4IeIEeF bLYW7LFEyLZrxtCaNOZ6BYDP/WzX7ffcLPizCdfrB9sHlJCaiofJjSyfX/3bexI/eAuZ 1tVOIX8U4YkHrsvIur7lJOTqXsLEZu8Njp7tASfoIBhXDc9xAUQKq+vx7pQ5q0w3DQj1 DZKAcqfxS7z7chsJUi0itv/3z+dMU+Xd6ODXZY0LoJZ8/Q3L6kn1+AktNswjWfXUnw2S PnYHBZTHl1Vutq2iTiBnOGGco7JwQ6f5iSoopCdNTa4y/U2r90QOQW9kV0AER+RFOiry /tIw== X-Gm-Message-State: AGi0PuZ+ZNt0yESmFaoaUOSdYb/AnOzZMo0Wr6lmrAiLkIAQcOFt3Qhq qptzM1QMRMQT8Ip6ZkTbfgA1QB+GbwuXJBzAE94n9uqI7eFdIxHY7hj+MCBjiN7pA4ZTApFpTBZ cM0ULMe3MUWZtWagIFUWB9Ku4C1eOhOvKnuTY1s6a1yd7RA81li/VPeIc1cv/ZcTBrlIndAg= X-Google-Smtp-Source: APiQypLNw+uhG3yixQ0CPmqa3DRwlm07i9XJ8WPloJTyhqckmWv7ZdyLLp2QozzQsjhz/MOy1/xTprMXaOL3Wg== X-Received: by 2002:adf:dd8a:: with SMTP id x10mr16411837wrl.308.1587368598914; Mon, 20 Apr 2020 00:43:18 -0700 (PDT) Date: Mon, 20 Apr 2020 09:43:11 +0200 Message-Id: <20200420074311.92426-1-maennich@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.26.1.301.g55bc3eb7cb9-goog Subject: [PATCH] abg-dwarf-reader: simplify symbol map update From: Matthias Maennich To: libabigail@sourceware.org Cc: dodji@seketeli.org, gprocida@google.com, kernel-team@android.com, maennich@google.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-33.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libabigail mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Apr 2020 07:43:22 -0000 For the update of fun_syms_, undefined_fun_syms_, var_syms_, undefined_var_syms_, there is a pattern in read_context::load_symbol_maps_from_symtab_section that can be simplified: We try to find the correct entry and keep the iterator. If we do not find it, we construct the value vector, find it again and update the iterator. Eventually we push_back the symbol. That can be simplified to looking up the value with operator[], which either returns the existing value or default constructs it. The reference returned is good for the push_back in any case. * src/abg-dwarf-reader.cc (read_context::load_symbol_maps_from_symtab_section): simplify symbol map update for fun_syms_, undefined_fun_syms_, var_syms_, undefined_var_syms_. Signed-off-by: Matthias Maennich --- src/abg-dwarf-reader.cc | 46 ++++------------------------------------- 1 file changed, 4 insertions(+), 42 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index 333bab909901..1c0d6ea0353f 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -7460,17 +7460,7 @@ public: if (load_fun_map && symbol->is_public()) { - { - string_elf_symbols_map_type::iterator it = - fun_syms_->find(symbol->get_name()); - if (it == fun_syms_->end()) - { - (*fun_syms_)[symbol->get_name()] = elf_symbols(); - it = fun_syms_->find(symbol->get_name()); - } - string name = symbol->get_name(); - it->second.push_back(symbol); - } + (*fun_syms_)[symbol->get_name()].push_back(symbol); { GElf_Addr symbol_value = @@ -7572,16 +7562,7 @@ public: } } else if (load_undefined_fun_map && !symbol->is_defined()) - { - string_elf_symbols_map_type::iterator it = - undefined_fun_syms_->find(symbol->get_name()); - if (it == undefined_fun_syms_->end()) - { - (*undefined_fun_syms_)[symbol->get_name()] = elf_symbols(); - it = undefined_fun_syms_->find(symbol->get_name()); - } - it->second.push_back(symbol); - } + (*undefined_fun_syms_)[symbol->get_name()].push_back(symbol); } else if ((load_var_map || load_undefined_var_map) && (GELF_ST_TYPE(sym->st_info) == STT_OBJECT @@ -7598,17 +7579,7 @@ public: if (load_var_map && symbol->is_public()) { - { - string_elf_symbols_map_type::iterator it = - var_syms_->find(symbol->get_name()); - if (it == var_syms_->end()) - { - (*var_syms_)[symbol->get_name()] = elf_symbols(); - it = var_syms_->find(symbol->get_name()); - } - string name = symbol->get_name(); - it->second.push_back(symbol); - } + (*var_syms_)[symbol->get_name()].push_back(symbol); if (symbol->is_common_symbol()) { @@ -7641,16 +7612,7 @@ public: } } else if (load_undefined_var_map && !symbol->is_defined()) - { - string_elf_symbols_map_type::iterator it = - undefined_var_syms_->find(symbol->get_name()); - if (it == undefined_var_syms_->end()) - { - (*undefined_var_syms_)[symbol->get_name()] = elf_symbols(); - it = undefined_var_syms_->find(symbol->get_name()); - } - it->second.push_back(symbol); - } + (*undefined_var_syms_)[symbol->get_name()].push_back(symbol); } } return true; -- 2.26.1.301.g55bc3eb7cb9-goog