summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2019-01-08 20:51:39 -0500
committerAlexei Podtelezhnikov <apodtele@gmail.com>2019-01-08 20:51:39 -0500
commitb75abeb5e6561024d182ccdc0eb36a7d2630310e (patch)
treef96f243b4755e272c8d774ec69d721dcd69c8c06
parent2875ada19766f9559feab3c643026fac57ac2a81 (diff)
downloadfreetype2-b75abeb5e6561024d182ccdc0eb36a7d2630310e.tar.gz
[psaux] Fix closepath (#55414).
All of the Type 1 path building is done with code common to the revised CFF engine, with the exception of closepath, which was still calling ps_builder_close_contour(), thus previously cached segments were not always written to the path, and glyph corruption, or even invalid outlines were possible. * src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>: Switch to calling `cf2_glyphpath_closeOpenPath'.
-rw-r--r--ChangeLog13
-rw-r--r--src/psaux/psintrp.c2
2 files changed, 14 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 89b70666c..df39ba69e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2019-01-08 Chris Liddell <chris.liddell@artifex.com>
+
+ [psaux] Fix closepath (#55414).
+
+ All of the Type 1 path building is done with code common to the
+ revised CFF engine, with the exception of closepath, which was still
+ calling ps_builder_close_contour(), thus previously cached segments
+ were not always written to the path, and glyph corruption, or even
+ invalid outlines were possible.
+
+ * src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>:
+ Switch to calling `cf2_glyphpath_closeOpenPath'.
+
2018-12-29 Werner Lemberg <wl@gnu.org>
* src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
diff --git a/src/psaux/psintrp.c b/src/psaux/psintrp.c
index 712e8782d..a9a717d76 100644
--- a/src/psaux/psintrp.c
+++ b/src/psaux/psintrp.c
@@ -963,7 +963,7 @@
FT_TRACE4(( " closepath" ));
/* if there is no path, `closepath' is a no-op */
- ps_builder_close_contour( &decoder->builder );
+ cf2_glyphpath_closeOpenPath( &glyphPath );
haveWidth = TRUE;
}