summaryrefslogtreecommitdiff
path: root/pango/opentype/harfbuzz-gpos.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/opentype/harfbuzz-gpos.c')
-rw-r--r--pango/opentype/harfbuzz-gpos.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/pango/opentype/harfbuzz-gpos.c b/pango/opentype/harfbuzz-gpos.c
index 3461279f..513f3fb5 100644
--- a/pango/opentype/harfbuzz-gpos.c
+++ b/pango/opentype/harfbuzz-gpos.c
@@ -193,6 +193,8 @@ FT_Error HB_Done_GPOS_Table( HB_GPOSHeader* gpos )
_HB_OPEN_Free_FeatureList( &gpos->FeatureList, memory );
_HB_OPEN_Free_ScriptList( &gpos->ScriptList, memory );
+ FREE( gpos );
+
return FT_Err_Ok;
}
@@ -1650,6 +1652,12 @@ static FT_Error Lookup_PairPos( GPOS_Instance* gpi,
return HB_Err_Invalid_GPOS_SubTable_Format;
}
+ /* if we don't have coverage for the second glyph don't skip it for
+ further lookups but reset in_pos back to the first_glyph and let
+ the caller in Do_String_Lookup increment in_pos */
+ if ( error == HB_Err_Not_Covered )
+ buffer->in_pos = first_pos;
+
/* adjusting the `next' glyph */
if ( pp->ValueFormat2 )