[icu/f19] Resolves: rhbz#966141 various flaws in Layout Engine font processing

Eike Rathke erack at fedoraproject.org
Wed Jul 17 11:47:14 UTC 2013


commit fa01eb34f9e115dac751acf788089fc05ea02068
Author: Eike Rathke <erack at redhat.com>
Date:   Wed Jul 17 12:11:34 2013 +0200

    Resolves: rhbz#966141 various flaws in Layout Engine font processing
    
    Applies ICU layout "patch", adapts existing patch and adds patch for
    https://ssl.icu-project.org/trac/ticket/10143

 .gitignore                        |    1 +
 icu.10143.memory.leak.crash.patch |   11 +++++++++++
 icu.8800.freeserif.crash.patch    |   18 +++++++++---------
 icu.spec                          |   13 +++++++++++--
 sources                           |    1 +
 5 files changed, 33 insertions(+), 11 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e116a82..ab4ceb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /icu4c-5*-src.tgz
+/icu-51-layout-fix-10107.tgz
 /icu-config.sh
diff --git a/icu.10143.memory.leak.crash.patch b/icu.10143.memory.leak.crash.patch
new file mode 100644
index 0000000..5b64562
--- /dev/null
+++ b/icu.10143.memory.leak.crash.patch
@@ -0,0 +1,11 @@
+diff -ru orig.icu/source/layout/LayoutEngine.cpp icu/source/layout/LayoutEngine.cpp
+--- orig.icu/source/layout/LayoutEngine.cpp	2013-04-18 23:32:39.000000000 +0200
++++ icu/source/layout/LayoutEngine.cpp	2013-07-17 01:52:18.208537348 +0200
+@@ -512,7 +512,6 @@
+ {
+   if(fGlyphStorage!=NULL) {
+     fGlyphStorage->reset();
+-    fGlyphStorage = NULL;
+   }
+ }
+ 
diff --git a/icu.8800.freeserif.crash.patch b/icu.8800.freeserif.crash.patch
index c2e0be6..04278d3 100644
--- a/icu.8800.freeserif.crash.patch
+++ b/icu.8800.freeserif.crash.patch
@@ -1,14 +1,14 @@
-diff -urN icu.old/source/layout/LookupProcessor.cpp icu/source/layout/LookupProcessor.cpp
---- icu.old/source/layout/LookupProcessor.cpp	2011-09-05 18:35:11.221515458 +0200
-+++ icu/source/layout/LookupProcessor.cpp	2011-09-05 18:41:30.021510913 +0200
-@@ -201,7 +201,9 @@
+diff -ru orig.icu/source/layout/LookupProcessor.cpp icu/source/layout/LookupProcessor.cpp
+--- orig.icu/source/layout/LookupProcessor.cpp	2013-04-18 23:32:30.000000000 +0200
++++ icu/source/layout/LookupProcessor.cpp	2013-07-17 01:09:57.792635999 +0200
+@@ -220,7 +220,9 @@
  
      if (requiredFeatureIndex != 0xFFFF) {
-         requiredFeatureTable = featureListTable->getFeatureTable(requiredFeatureIndex, &requiredFeatureTag);
--        featureReferences += SWAPW(featureTable->lookupCount);
-+	if (requiredFeatureTable) {
-+	        featureReferences += SWAPW(requiredFeatureTable->lookupCount);
-+	}
+       requiredFeatureTable = featureListTable->getFeatureTable(featureListTable, requiredFeatureIndex, &requiredFeatureTag, success);
+-      featureReferences += SWAPW(featureTable->lookupCount);
++      if (requiredFeatureTable.isValid()) {
++        featureReferences += SWAPW(requiredFeatureTable->lookupCount);
++      }
      }
  
      lookupOrderArray = LE_NEW_ARRAY(le_uint16, featureReferences);
diff --git a/icu.spec b/icu.spec
index e94b680..718c45a 100644
--- a/icu.spec
+++ b/icu.spec
@@ -1,12 +1,15 @@
 Name:      icu
 Version:   50.1.2
-Release:   5%{?dist}
+Release:   6%{?dist}
 Summary:   International Components for Unicode
 Group:     Development/Tools
 License:   MIT and UCD and Public Domain
 URL:       http://www.icu-project.org/
 Source0:   http://download.icu-project.org/files/icu4c/50.1.2/icu4c-50_1_2-src.tgz
-Source1:   icu-config.sh
+# According to ICU the layout "patch" should be applied to all versions earlier than 51.2
+# See also http://site.icu-project.org/download/51#TOC-Known-Issues
+Source1:   http://download.icu-project.org/files/icu4c/51.1/icu-51-layout-fix-10107.tgz
+Source2:   icu-config.sh
 BuildRequires: doxygen, autoconf, python
 Requires: lib%{name} = %{version}-%{release}
 
@@ -16,6 +19,7 @@ Patch3: icu.7601.Indic-ccmp.patch
 Patch4: icu.9948.mlym-crash.patch
 Patch5: gennorm2-man.patch
 Patch6: icuinfo-man.patch
+Patch7: icu.10143.memory.leak.crash.patch
 
 %description
 Tools and utilities for developing with icu.
@@ -58,12 +62,14 @@ BuildArch: noarch
 
 %prep
 %setup -q -n %{name}
+%setup -q -n %{name} -T -D -a 1
 %patch1 -p2 -R -b .icu8198.revert.icu5431.patch
 %patch2 -p1 -b .icu8800.freeserif.crash.patch
 %patch3 -p1 -b .icu7601.Indic-ccmp.patch
 %patch4 -p1 -b .icu9948.mlym-crash.patch
 %patch5 -p1 -b .gennorm2-man.patch
 %patch6 -p1 -b .icuinfo-man.patch
+%patch7 -p1 -b .icu10143.memory.leak.crash.patch
 
 %build
 cd source
@@ -171,6 +177,9 @@ make %{?_smp_mflags} -C source check
 %doc source/__docs/%{name}/html/*
 
 %changelog
+* Wed Jul 17 2013 Eike Rathke <erack at redhat.com> - 50.1.2-6
+- Resolves: rhbz#966141 various flaws in Layout Engine font processing
+
 * Mon Feb 25 2013 Eike Rathke <erack at redhat.com> - 50.1.2-5
 - added manpages for gennorm2 and icuinfo, rhbz#884035 related
 
diff --git a/sources b/sources
index 9739fd1..5185b8b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
 beb98aa972219c9fcd9c8a71314943c9  icu4c-50_1_2-src.tgz
+7650341b04f05ff2595bf064f3e41f41  icu-51-layout-fix-10107.tgz
 d28e7ab76e0f77044153f3bfd18880c2  icu-config.sh


More information about the scm-commits mailing list