ref: 6d29f0f1e8bc3dfbb0af274ffde41ee41bc35150
parent: de9479a00dee5aea9e470775d39c70a8f1f7acb3
author: Werner Lemberg <[email protected]>
date: Sat May 3 11:54:15 EDT 2008
* src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without transformation since it recursively calls FT_Load_Glyph. This fixes Savannah bug #23143.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-03 Werner Lemberg <[email protected]>
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
+ transformation since it recursively calls FT_Load_Glyph. This fixes
+ Savannah bug #23143.
+
2008-04-26 Werner Lemberg <[email protected]>
* include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -634,12 +634,24 @@
goto Load_Ok;
}
- /* load auto-hinted outline */
- hinting = (FT_AutoHinter_Service)hinter->clazz->module_interface;
+ {
+ FT_Face_Internal internal = face->internal;
+ FT_Int transform_flags = internal->transform_flags;
- error = hinting->load_glyph( (FT_AutoHinter)hinter,
- slot, face->size,
- glyph_index, load_flags );
+
+ /* since the auto-hinter calls FT_Load_Glyph by itself, */
+ /* make sure that glyphs aren't transformed */
+ internal->transform_flags = 0;
+
+ /* load auto-hinted outline */
+ hinting = (FT_AutoHinter_Service)hinter->clazz->module_interface;
+
+ error = hinting->load_glyph( (FT_AutoHinter)hinter,
+ slot, face->size,
+ glyph_index, load_flags );
+
+ internal->transform_flags = transform_flags;
+ }
}
else
{