Index: src/autofit/afloader.c |
diff --git a/src/autofit/afloader.c b/src/autofit/afloader.c |
index 966a0df73dbc53929110633f56fb6fb1c96b70fd..34ef9d8098518d01fcb4aa06bb30735067736ee8 100644 |
--- a/src/autofit/afloader.c |
+++ b/src/autofit/afloader.c |
@@ -4,7 +4,7 @@ |
/* */ |
/* Auto-fitter glyph loading routines (body). */ |
/* */ |
-/* Copyright 2003-2009, 2011 by */ |
+/* Copyright 2003-2009, 2011-2012 by */ |
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
/* */ |
/* This file is part of the FreeType project, and may only be used, */ |
@@ -433,9 +433,10 @@ |
slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance, |
x_scale ); |
#else |
- if ( FT_IS_FIXED_WIDTH( slot->face ) || |
- ( af_face_globals_is_digit( loader->globals, glyph_index ) && |
- metrics->digits_have_same_width ) ) |
+ if ( scaler->render_mode != FT_RENDER_MODE_LIGHT && |
+ ( FT_IS_FIXED_WIDTH( slot->face ) || |
+ ( af_face_globals_is_digit( loader->globals, glyph_index ) && |
+ metrics->digits_have_same_width ) ) ) |
{ |
slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance, |
metrics->scaler.x_scale ); |
@@ -465,7 +466,13 @@ |
if ( error ) |
goto Exit; |
- slot->outline = internal->loader->base.outline; |
+ /* reassign all outline fields except flags to protect them */ |
+ slot->outline.n_contours = internal->loader->base.outline.n_contours; |
+ slot->outline.n_points = internal->loader->base.outline.n_points; |
+ slot->outline.points = internal->loader->base.outline.points; |
+ slot->outline.tags = internal->loader->base.outline.tags; |
+ slot->outline.contours = internal->loader->base.outline.contours; |
+ |
slot->format = FT_GLYPH_FORMAT_OUTLINE; |
} |
@@ -480,7 +487,7 @@ |
af_loader_load_glyph( AF_Loader loader, |
FT_Face face, |
FT_UInt gindex, |
- FT_UInt32 load_flags ) |
+ FT_Int32 load_flags ) |
{ |
FT_Error error; |
FT_Size size = face->size; |