[truetype] Fix handling of phantom points in composite glyphs.

Problem reported by Nigel Tao <nigeltao@golang.org>.

This is a follow-up commit to the previous one.

* src/truetype/ttgload.c (load_truetype_glyph): Call
`tt_get_metrics' after loading the glyph header.
This commit is contained in:
Werner Lemberg 2013-11-06 08:41:59 +01:00
parent 7e4b0fbfdd
commit 5e225b7c15
2 changed files with 21 additions and 3 deletions

View File

@ -1,3 +1,13 @@
2013-11-06 Werner Lemberg <wl@gnu.org>
[truetype] Fix handling of phantom points in composite glyphs.
Problem reported by Nigel Tao <nigeltao@golang.org>.
This is a follow-up commit to the previous one.
* src/truetype/ttgload.c (load_truetype_glyph): Call
`tt_get_metrics' after loading the glyph header.
2013-11-06 Werner Lemberg <wl@gnu.org>
[truetype] Improve emulation of vertical metrics.

View File

@ -1387,8 +1387,6 @@
y_scale = 0x10000L;
}
tt_get_metrics( loader, glyph_index );
/* Set `offset' to the start of the glyph relative to the start of */
/* the `glyf' table, and `byte_len' to the length of the glyph in */
/* bytes. */
@ -1448,7 +1446,15 @@
/* read glyph header first */
error = face->read_glyph_header( loader );
if ( error || header_only )
if ( error )
goto Exit;
/* the metrics must be computed after loading the glyph header */
/* since we need the glyph's `yMax' value in case the vertical */
/* metrics must be emulated */
tt_get_metrics( loader, glyph_index );
if ( header_only )
goto Exit;
}
@ -1459,6 +1465,8 @@
loader->bbox.yMin = 0;
loader->bbox.yMax = 0;
tt_get_metrics( loader, glyph_index );
if ( header_only )
goto Exit;