Ve must erase ze kinderlach!!
Fixes Error 3, which was caused by deref of invalidated iterator
This commit is contained in:
@@ -3015,8 +3015,7 @@ void LLLineEditor::showContextMenu(S32 x, S32 y)
|
||||
{
|
||||
constexpr auto spell_sep = "Spell Check Sep";
|
||||
// Remove everything after the separator if we added it, because menus don't autodie yet.
|
||||
for (auto menu_end = menu->end(), menu_it = menu->find(menu->findChild<LLMenuItemGL>(spell_sep)); menu_it != menu_end; ++menu_it)
|
||||
menu->removeChild(*menu_it);
|
||||
menu->erase(menu->find(menu->findChild<LLMenuItemGL>(spell_sep)), menu->end());
|
||||
menu->addSeparator(spell_sep);
|
||||
|
||||
// search for word matches
|
||||
|
||||
@@ -527,10 +527,16 @@ public:
|
||||
|
||||
// erase group of items from menu
|
||||
void erase(S32 begin, S32 end, bool arrange = true);
|
||||
typedef std::list<LLMenuItemGL*> item_list_t;
|
||||
inline item_list_t::iterator erase(item_list_t::const_iterator first, item_list_t::const_iterator last)
|
||||
{
|
||||
for (auto it = first; it != last; ++it)
|
||||
LLUICtrl::removeChild(*it);
|
||||
return mItems.erase(first, last);
|
||||
}
|
||||
|
||||
// add new item at position
|
||||
void insert(S32 begin, LLView* ctrl, bool arrange = true);
|
||||
typedef std::list<LLMenuItemGL*> item_list_t;
|
||||
void insert(item_list_t::const_iterator position_iter, LLMenuItemGL* item, bool arrange = true);
|
||||
|
||||
// find an item's position
|
||||
|
||||
Reference in New Issue
Block a user