summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Ringlein <aringlein@figma.com>2023-02-16 22:38:35 -0500
committerAlexei Podtelezhnikov <apodtele@gmail.com>2023-02-16 22:38:35 -0500
commit74ea5454cc2dee5cbd9c42e63cde8cb26f94beb9 (patch)
tree5d3debf01f89881c30a920a0ddded310ae292931
parent0eca6ead82b4e6f739b57e49a3029d0b31fd1652 (diff)
downloadfreetype2-74ea5454cc2dee5cbd9c42e63cde8cb26f94beb9.tar.gz
* src/base/ftoutln.c (FT_Outline_Reverse): Anchor first contour points.
A cubic contour has to always start from an on-point. Therefore, we should not swap the first with the last point, which might be off, and obtain an invalid contour. This does not matter for conic contours. If anything, it also saves one swap there. Fixes #1207.
-rw-r--r--src/base/ftoutln.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 30ff21ff3..e7ae82e21 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -556,6 +556,10 @@
{
last = outline->contours[n];
+ /* keep the first contour point as is and swap points around it */
+ /* to guarantee that the cubic arches stay valid after reverse */
+ first++;
+
/* reverse point table */
{
FT_Vector* p = outline->points + first;