From 8d746dbe74fdca3e654a65e6e5ea1150233eb4ff Mon Sep 17 00:00:00 2001 From: Marek Kasik Date: Mon, 21 Nov 2016 16:50:06 +0100 Subject: [PATCH] Fix a valgrind warning Resolves: #1395915 --- freetype-2.7-valgrind.patch | 65 +++++++++++++++++++++++++++++++++++++ freetype.spec | 10 +++++- 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 freetype-2.7-valgrind.patch diff --git a/freetype-2.7-valgrind.patch b/freetype-2.7-valgrind.patch new file mode 100644 index 0000000..e677f50 --- /dev/null +++ b/freetype-2.7-valgrind.patch @@ -0,0 +1,65 @@ +From 6ca54c643094800c1915dd856b9ea36276fe1e97 Mon Sep 17 00:00:00 2001 +From: Alexei Podtelezhnikov +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 + diff --git a/freetype.spec b/freetype.spec index 744c4c4..a615a71 100644 --- a/freetype.spec +++ b/freetype.spec @@ -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 - 2.7-2 +- Fix a valgrind warning +- Resolves: #1395915 + * Mon Sep 12 2016 Marek Kasik - 2.7-1 - Update to 2.7 - Resolves: #1374305