diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> | 2012-03-20 12:01:22 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-20 17:30:32 +0100 |
commit | 5234e901be550f70134da90ba0c5a89be238a615 (patch) | |
tree | e5d64f0cd09797b906c02042be0c3ebd5d416dfa /src | |
parent | 7165e6803306ec66a41db3f5db53a8134a41559a (diff) |
Fix GPOS positioning for some fonts
We need to do ACCESS_Frame for each 2 byte frame, otherwise
the position of the cursor in the input stream will not be
updated by enough, and we will read twice as many pairsets.
Depending on the value read for the SecondGlyph in the
broken pairsets, we might get strange kerning results.
Change-Id: I7fb5a850afe0364b3dd50869d5f36fd14d2f4eaf
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/harfbuzz/src/harfbuzz-gpos.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c b/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c index 217a4fd001..44ed64c520 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c @@ -1187,13 +1187,14 @@ static HB_Error Load_PairSet ( HB_PairSet* ps, for ( n = 0; n < count; n++ ) { - if ( ACCESS_Frame( 2L ) ) - goto Fail; + for ( m = 0; m < record_size; m++ ) { + if ( ACCESS_Frame( 2L ) ) + goto Fail; - for ( m = 0; m < record_size; m++ ) *(vr++) = GET_Short(); - FORGET_Frame(); + FORGET_Frame(); + } } #endif |