2005-11-17  Behdad Esfahbod  <behdad@gnome.org>

        Part of #101079:

        * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables,
        offset is relative to the extension subtable, not the original
        table. (Greg Aumann)

        * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor,
        skip offsets that are zero.  Works around bug in Doulos SIL Regular.
This commit is contained in:
Behdad Esfahbod 2005-11-17 06:28:11 +00:00 committed by Behdad Esfahbod
parent 1b2c314b80
commit 612b6cf609
2 changed files with 10 additions and 2 deletions

View File

@ -2080,6 +2080,12 @@
FORGET_Frame(); FORGET_Frame();
if (new_offset == base_offset) {
/* Doulos SIL Regular is buggy and has zer offsets here. Skip */
ban[n].PosFormat = 0;
continue;
}
cur_offset = FILE_Pos(); cur_offset = FILE_Pos();
if ( FILE_Seek( new_offset ) || if ( FILE_Seek( new_offset ) ||
( error = Load_Anchor( &ban[n], stream ) ) != TT_Err_Ok ) ( error = Load_Anchor( &ban[n], stream ) ) != TT_Err_Ok )

View File

@ -631,9 +631,11 @@
if ( FILE_Seek( new_offset ) || ACCESS_Frame( 8L ) ) if ( FILE_Seek( new_offset ) || ACCESS_Frame( 8L ) )
goto Fail; goto Fail;
(void)GET_UShort(); /* format should be 1 */ if (GET_UShort() != 1) /* format should be 1 */
goto Fail;
l->LookupType = GET_UShort(); l->LookupType = GET_UShort();
new_offset = GET_ULong() + base_offset; new_offset += GET_ULong();
FORGET_Frame(); FORGET_Frame();
} }