Consider:
void Text::setFont(Cursor & cur, Font const & font) { LASSERT(this == cur.text(), /**/); // Set the current_font // Determine basis font FontInfo layoutfont;Wouldn't it be better to return here if the assertion fails? Continuing seems like we're inviting disaster, whereas returning just aborts what we're doing.
I've seen this same pattern a lot of places. I wouldn't propose to change all of them at once, but if this seems right we could try to change them as we see them.
Richard