Fix performence problem while shaping a lines with many scripts
authorOlivier Goffart <ogoffart@woboq.com>
Thu, 16 Aug 2012 07:53:44 +0000 (09:53 +0200)
committerQt by Nokia <qt-info@nokia.com>
Thu, 23 Aug 2012 21:31:10 +0000 (23:31 +0200)
Fix quadradic behaviour regression introduced in commit
2e6b8b4734710377e25c199e3ff7865628e7d723

Task-number: QTBUG-22275
Change-Id: I343452c6b1cd0e571770e5dadd3cd6fd3167c96d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp

index 6f663d5..1024c81 100644 (file)
@@ -884,7 +884,7 @@ HB_Bool HB_SelectScript(HB_ShaperItem *shaper_item, const HB_OpenTypeFeature *fe
 
 static HB_Bool containsSurrogates(HB_ShaperItem *item)
 {
-    for (hb_uint32 i=0; i<item->stringLength; ++i) {
+    for (hb_uint32 i=item->item.pos; i<item->item.pos+item->item.length; ++i) {
         HB_UChar16 ucs = item->string[i];
         if ( HB_IsHighSurrogate(ucs) || HB_IsLowSurrogate(ucs) )
             return true;