- size_t const size = rows_.size();
- row_change_status_.resize(size);
- row_signature_.resize(size);
-
- for (size_t i = 0; i != size; ++i) {
- // Row signature; has row changed since last update?
- size_type const row_sig = calculateRowSignature(rows_[i]);
- row_change_status_[i] = row_signature_[i] != row_sig;
- row_signature_[i] = row_sig;
- }
-}
-
-
-Row & ParagraphMetrics::getRow(pos_type pos, bool boundary)
-{
- BOOST_ASSERT(!rows().empty());
-
- // If boundary is set we should return the row on which
- // the character before is inside.
- if (pos > 0 && boundary)
- --pos;
-
- RowList::iterator rit = rows_.end();
- RowList::iterator const begin = rows_.begin();
-
- for (--rit; rit != begin && rit->pos() > pos; --rit)
- ;
-
- return *rit;