diff options
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/gc.cc | 11 |
2 files changed, 7 insertions, 9 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 9eadf3b..25d4588 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,10 @@ 2015-04-06 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> + * 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 <rafael.espindola@gmail.com> + * gc.cc (Garbage_collection::do_transitive_closure): Avoid a copy constructor call. @@ -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()) |