[base] Fix advance width loading for MM and GX fonts (#47064).
* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for MM and GX fonts. Update callers.
This commit is contained in:
parent
9cc2d46785
commit
710ac3dda0
|
@ -1,3 +1,11 @@
|
|||
2016-02-05 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[base] Fix advance width loading for MM and GX fonts (#47064).
|
||||
|
||||
* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for
|
||||
MM and GX fonts.
|
||||
Update callers.
|
||||
|
||||
2016-02-03 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[cff] Fix handling of face_index == -1 for pure CFF.
|
||||
|
|
|
@ -60,10 +60,12 @@
|
|||
/* - unscaled load */
|
||||
/* - unhinted load */
|
||||
/* - light-hinted load */
|
||||
/* - neither a MM nor a GX font */
|
||||
|
||||
#define LOAD_ADVANCE_FAST_CHECK( flags ) \
|
||||
( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \
|
||||
FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT )
|
||||
#define LOAD_ADVANCE_FAST_CHECK( face, flags ) \
|
||||
( ( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \
|
||||
FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT ) && \
|
||||
!FT_HAS_MULTIPLE_MASTERS( face ) )
|
||||
|
||||
|
||||
/* documentation is in ftadvanc.h */
|
||||
|
@ -87,7 +89,7 @@
|
|||
return FT_THROW( Invalid_Glyph_Index );
|
||||
|
||||
func = face->driver->clazz->get_advances;
|
||||
if ( func && LOAD_ADVANCE_FAST_CHECK( flags ) )
|
||||
if ( func && LOAD_ADVANCE_FAST_CHECK( face, flags ) )
|
||||
{
|
||||
FT_Error error;
|
||||
|
||||
|
@ -133,7 +135,7 @@
|
|||
return FT_Err_Ok;
|
||||
|
||||
func = face->driver->clazz->get_advances;
|
||||
if ( func && LOAD_ADVANCE_FAST_CHECK( flags ) )
|
||||
if ( func && LOAD_ADVANCE_FAST_CHECK( face, flags ) )
|
||||
{
|
||||
error = func( face, start, count, flags, padvances );
|
||||
if ( !error )
|
||||
|
|
Loading…
Reference in New Issue