From 74ea5454cc2dee5cbd9c42e63cde8cb26f94beb9 Mon Sep 17 00:00:00 2001 From: Alex Ringlein Date: Thu, 16 Feb 2023 22:38:35 -0500 Subject: [PATCH] * 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. --- src/base/ftoutln.c | 4 ++++ 1 file changed, 4 insertions(+) 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;