]> git.pld-linux.org Git - packages/icu.git/commitdiff
Backport fix for upstream bug #12827 causing new gnome-shell to crash. Release 2 auto/th/icu-58.2-2
authorMarcin Banasiak <marcin.banasiak@gmail.com>
Mon, 27 Mar 2017 18:57:39 +0000 (20:57 +0200)
committerMarcin Banasiak <marcin.banasiak@gmail.com>
Mon, 27 Mar 2017 18:57:39 +0000 (20:57 +0200)
icu.spec
ucol_getKeywordValuesForLocale-ulist_resetList.diff [new file with mode: 0644]

index ccc0af58e636fda36331195da5ba455966e8948f..a2c7e381a12fdc8481eea889c004cfc52a7e6439 100644 (file)
--- 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 (file)
index 0000000..8718a0b
--- /dev/null
@@ -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.
This page took 0.164581 seconds and 4 git commands to generate.