diff --git a/gold/ChangeLog b/gold/ChangeLog index 9eadf3b7cc..25d45889f7 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2015-04-06 Rafael Ávila de Espíndola + + * gc.cc (Garbage_collection::do_transitive_closure): Avoid a call + to find by using the return value of insert. + 2015-04-06 Rafael Ávila de Espíndola * gc.cc (Garbage_collection::do_transitive_closure): Avoid a copy diff --git a/gold/gc.cc b/gold/gc.cc index 95867c4bbb..16bdb19931 100644 --- a/gold/gc.cc +++ b/gold/gc.cc @@ -40,15 +40,8 @@ Garbage_collection::do_transitive_closure() // one by one. Section_id entry = this->worklist().front(); this->worklist().pop(); - if (this->referenced_list().find(entry) - == this->referenced_list().end()) - { - this->referenced_list().insert(entry); - } - else - { - continue; - } + if (!this->referenced_list().insert(entry).second) + continue; Garbage_collection::Section_ref::iterator find_it = this->section_reloc_map().find(entry); if (find_it == this->section_reloc_map().end())