Fix a valgrind warning

Resolves: #1395915
This commit is contained in:
Marek Kasik 2016-11-21 16:50:06 +01:00
parent 6e7eb90843
commit 8d746dbe74
2 changed files with 74 additions and 1 deletions

View File

@ -0,0 +1,65 @@
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

View File

@ -7,7 +7,7 @@
Summary: A free and portable font rendering engine
Name: freetype
Version: 2.7
Release: 1%{?dist}
Release: 2%{?dist}
License: (FTL or GPLv2+) and BSD and MIT and Public Domain and zlib with acknowledgement
Group: System Environment/Libraries
URL: http://www.freetype.org
@ -31,6 +31,8 @@ Patch92: freetype-2.5.3-freetype-config-prefix.patch
Patch93: freetype-2.6.5-libtool.patch
Patch94: freetype-2.7-valgrind.patch
BuildRequires: libX11-devel
BuildRequires: libpng-devel
BuildRequires: zlib-devel
@ -94,6 +96,8 @@ popd
%patch93 -p1 -b .libtool
%patch94 -p1 -b .valgrind
%build
%configure --disable-static \
@ -208,6 +212,10 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la}
%{_mandir}/man1/*
%changelog
* Mon Nov 21 2016 Marek Kasik <mkasik@redhat.com> - 2.7-2
- Fix a valgrind warning
- Resolves: #1395915
* Mon Sep 12 2016 Marek Kasik <mkasik@redhat.com> - 2.7-1
- Update to 2.7
- Resolves: #1374305