commit 25727ee5a898a5ade763a344ebac28b49df89076
Author: Jean-Marc <[email protected]>
Date:   Tue Jul 21 00:14:39 2015 +0200

    Only compute string length every 30 characters
    
    This makes paragraph rebreaking muh much faster, at least on my ancient 
iMac Core 2 Duo.

diff --git a/src/Row.cpp b/src/Row.cpp
index ec01d5c..1bd11c9 100644
--- a/src/Row.cpp
+++ b/src/Row.cpp
@@ -333,11 +333,16 @@ void Row::add(pos_type const pos, char_type const c,
                Element e(STRING, pos, f, ch);
                elements_.push_back(e);
        }
-       dim_.wid -= back().dim.wid;
-       back().str += c;
-       back().endpos = pos + 1;
-       back().dim.wid = theFontMetrics(back().font).width(back().str);
-       dim_.wid += back().dim.wid;
+       if (back().str.length() % 30 == 0) {
+               dim_.wid -= back().dim.wid;
+               back().str += c;
+               back().endpos = pos + 1;
+               back().dim.wid = theFontMetrics(back().font).width(back().str);
+               dim_.wid += back().dim.wid;
+       } else {
+               back().str += c;
+               back().endpos = pos + 1;
+       }
 }
 
 

Reply via email to