From: Benjamin Lindley Date: Tue, 5 Mar 2019 07:13:15 +0000 (-0600) Subject: Replace for loop with call to standard library function (#8194) X-Git-Tag: 5.1.0~297 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e19565c170ba8baf7a90945beb44cb1ef7292e50;p=oweals%2Fminetest.git Replace for loop with call to standard library function (#8194) This loop makes multiple passes over m_stack (type std::list) in order to remove all elements with a specified value. Replacing the loop with a call to std::list::remove does the same job, but in only one pass. --- diff --git a/src/gui/mainmenumanager.h b/src/gui/mainmenumanager.h index ea9327813..102492255 100644 --- a/src/gui/mainmenumanager.h +++ b/src/gui/mainmenumanager.h @@ -62,21 +62,7 @@ public: virtual void deletingMenu(gui::IGUIElement *menu) { // Remove all entries if there are duplicates - bool removed_entry; - do{ - removed_entry = false; - for(std::list::iterator - i = m_stack.begin(); - i != m_stack.end(); ++i) - { - if(*i == menu) - { - m_stack.erase(i); - removed_entry = true; - break; - } - } - }while(removed_entry); + m_stack.remove(menu); /*core::list::Iterator i = m_stack.getLast(); assert(*i == menu);