8d746dbe74
Resolves: #1395915
66 lines
2.0 KiB
Diff
66 lines
2.0 KiB
Diff
From 6ca54c643094800c1915dd856b9ea36276fe1e97 Mon Sep 17 00:00:00 2001
|
|
From: Alexei Podtelezhnikov <apodtele@gmail.com>
|
|
Date: Sun, 11 Sep 2016 16:00:52 -0400
|
|
Subject: [PATCH] [smooth] Fix valgrind warning and reoptimize.
|
|
|
|
The algorithm calls `gray_set_cell' at the start of each new contour
|
|
or when the contours cross the cell boundaries. Double-checking for
|
|
that is wasteful.
|
|
|
|
* src/smooth/ftgrays.c (gray_set_cell): Remove check for a new cell.
|
|
(gray_convert_glyph): Remove initialization introduced by 44b172e88.
|
|
---
|
|
ChangeLog | 11 +++++++++++
|
|
src/smooth/ftgrays.c | 21 +++++++++------------
|
|
2 files changed, 20 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
|
|
index 59fafdb..8f85ec2 100644
|
|
--- a/src/smooth/ftgrays.c
|
|
+++ b/src/smooth/ftgrays.c
|
|
@@ -577,24 +577,21 @@ typedef ptrdiff_t FT_PtrDist;
|
|
|
|
/* All cells that are on the left of the clipping region go to the */
|
|
/* min_ex - 1 horizontal position. */
|
|
+
|
|
if ( ex > ras.max_ex )
|
|
ex = ras.max_ex;
|
|
|
|
if ( ex < ras.min_ex )
|
|
ex = ras.min_ex - 1;
|
|
|
|
- /* are we moving to a different cell ? */
|
|
- if ( ex != ras.ex || ey != ras.ey )
|
|
- {
|
|
- /* record the current one if it is valid */
|
|
- if ( !ras.invalid )
|
|
- gray_record_cell( RAS_VAR );
|
|
+ /* record the current one if it is valid */
|
|
+ if ( !ras.invalid )
|
|
+ gray_record_cell( RAS_VAR );
|
|
|
|
- ras.area = 0;
|
|
- ras.cover = 0;
|
|
- ras.ex = ex;
|
|
- ras.ey = ey;
|
|
- }
|
|
+ ras.area = 0;
|
|
+ ras.cover = 0;
|
|
+ ras.ex = ex;
|
|
+ ras.ey = ey;
|
|
|
|
ras.invalid = ( ey >= ras.max_ey || ey < ras.min_ey ||
|
|
ex >= ras.max_ex );
|
|
@@ -1820,7 +1817,7 @@ typedef ptrdiff_t FT_PtrDist;
|
|
ras.num_cells = 0;
|
|
ras.invalid = 1;
|
|
ras.min_ey = band[1];
|
|
- ras.max_ey = ras.ey = band[0];
|
|
+ ras.max_ey = band[0];
|
|
|
|
error = gray_convert_glyph_inner( RAS_VAR );
|
|
|
|
--
|
|
2.9.3
|
|
|