[packages/icu] Backport fix for upstream bug #12827 causing new gnome-shell to crash. Release 2
megabajt
megabajt at pld-linux.org
Mon Mar 27 21:00:39 CEST 2017
commit e52c2e3b4f8944f00dc22cafc7ed4bc947f60fea
Author: Marcin Banasiak <marcin.banasiak at gmail.com>
Date: Mon Mar 27 20:57:39 2017 +0200
Backport fix for upstream bug #12827 causing new gnome-shell to crash. Release 2
icu.spec | 4 +-
..._getKeywordValuesForLocale-ulist_resetList.diff | 62 ++++++++++++++++++++++
2 files changed, 65 insertions(+), 1 deletion(-)
---
diff --git a/icu.spec b/icu.spec
index ccc0af5..a2c7e38 100644
--- a/icu.spec
+++ b/icu.spec
@@ -7,11 +7,12 @@ Summary: International Components for Unicode
Summary(pl.UTF-8): Międzynarodowe komponenty dla unikodu
Name: icu
Version: 58.2
-Release: 1
+Release: 2
License: MIT-like
Group: Libraries
Source0: http://download.icu-project.org/files/icu4c/%{version}/%{name}4c-%{ver}-src.tgz
# Source0-md5: fac212b32b7ec7ab007a12dff1f3aea1
+Patch0: ucol_getKeywordValuesForLocale-ulist_resetList.diff
URL: http://www.icu-project.org/
BuildRequires: autoconf >= 2.69
BuildRequires: libstdc++-devel
@@ -94,6 +95,7 @@ biblioteki programistyczne ICU.
%prep
%setup -q -n %{name}
+%patch0 -p1
%build
cd source
diff --git a/ucol_getKeywordValuesForLocale-ulist_resetList.diff b/ucol_getKeywordValuesForLocale-ulist_resetList.diff
new file mode 100644
index 0000000..8718a0b
--- /dev/null
+++ b/ucol_getKeywordValuesForLocale-ulist_resetList.diff
@@ -0,0 +1,62 @@
+https://ssl.icu-project.org/trac/ticket/12827
+https://ssl.icu-project.org/trac/changeset/39484 (Excluding test-related bits
+because we remove the "test" directory before applying the ICU patches.)
+
+Index: /intl/icu/source/common/ulist.c
+===================================================================
+--- a/source/common/ulist.c (revision 39483)
++++ b/source/common/ulist.c (revision 39484)
+@@ -30,5 +30,4 @@
+
+ int32_t size;
+- int32_t currentIndex;
+ };
+
+@@ -52,5 +51,4 @@
+ newList->tail = NULL;
+ newList->size = 0;
+- newList->currentIndex = -1;
+
+ return newList;
+@@ -81,6 +79,7 @@
+ p->next->previous = p->previous;
+ }
+- list->curr = NULL;
+- list->currentIndex = 0;
++ if (p == list->curr) {
++ list->curr = p->next;
++ }
+ --list->size;
+ if (p->forceDelete) {
+@@ -151,5 +150,4 @@
+ list->head->previous = newItem;
+ list->head = newItem;
+- list->currentIndex++;
+ }
+
+@@ -194,5 +192,4 @@
+ curr = list->curr;
+ list->curr = curr->next;
+- list->currentIndex++;
+
+ return curr->data;
+@@ -210,5 +207,4 @@
+ if (list != NULL) {
+ list->curr = list->head;
+- list->currentIndex = 0;
+ }
+ }
+@@ -273,3 +269,2 @@
+ return (UList *)(en->context);
+ }
+-
+Index: /intl/icu/source/i18n/ucol_res.cpp
+===================================================================
+--- a/source/i18n/ucol_res.cpp (revision 39483)
++++ b/source/i18n/ucol_res.cpp (revision 39484)
+@@ -681,4 +681,5 @@
+ }
+ memcpy(en, &defaultKeywordValues, sizeof(UEnumeration));
++ ulist_resetList(sink.values); // Initialize the iterator.
+ en->context = sink.values;
+ sink.values = NULL; // Avoid deletion in the sink destructor.
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/icu.git/commitdiff/e52c2e3b4f8944f00dc22cafc7ed4bc947f60fea
More information about the pld-cvs-commit
mailing list