I'm trying to get rid of the 9% cost of pango_default_break() for measuring text. I'd like to lazily calculate the logical attributes (bug 123646 but don't bother). I have some hacks that work but I need some advice. Of the 11 logical attributes, only three are used in pango: is_cursor_position -- used for public APIs like line_to_x and move_cursor_visually, and also for ellipsizing is_char_break -- used by pango-layout.c:can_break_at for PANGO_WRAP_CHAR is_line_break -- used by pango-layout.c:can_break_at for PANGO_WORD_WRAP is_line_break is the most important. PANGO_WORD_WRAP is the default, and process_line calls can_break_at to determine whether there is any break point in the line. I'm wondering there is a high-level algorithmic way to avoid using is_line_break. I can understand the lower-level stuff, but the pango-layout.c:process_line code is getting up there. Any thoughts or pointers? -Billy