summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2012-03-20 12:01:22 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-20 17:30:32 +0100
commit5234e901be550f70134da90ba0c5a89be238a615 (patch)
treee5d64f0cd09797b906c02042be0c3ebd5d416dfa /src
parent7165e6803306ec66a41db3f5db53a8134a41559a (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.c9
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