void FontList::setMisspelled(pos_type startpos, pos_type endpos,
bool misspelled)
{
- if (list_.empty())
- return;
-
- List::iterator end_it = fontIterator(endpos);
- List::iterator const end = list_.end();
- if (end_it != end)
- ++end_it;
-
- List::iterator cit = fontIterator(startpos);
- for (; cit != end_it; ++cit)
- cit->font_.setMisspelled(misspelled);
+ // FIXME: optimize!
+ Font f = fontIterator(startpos)->font();
+ f.setMisspelled(misspelled);
+ setRange(startpos, endpos, f);
}