[folks/f16] fix a gnome-shell crash
Matthias Clasen
mclasen at fedoraproject.org
Thu Sep 8 17:41:35 UTC 2011
commit 7ac98ae2d052bbdffef96d1f9188ed16c1a8c43f
Author: Matthias Clasen <mclasen at redhat.com>
Date: Thu Sep 8 13:40:19 2011 -0400
fix a gnome-shell crash
folks.spec | 9 ++++++++-
reentrancy-is-the-suck.patch | 31 +++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+), 1 deletions(-)
---
diff --git a/folks.spec b/folks.spec
index d8ff2aa..afde505 100644
--- a/folks.spec
+++ b/folks.spec
@@ -3,7 +3,7 @@
Name: folks
Epoch: 1
Version: 0.6.2
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: GObject contact aggregation library
Group: System Environment/Libraries
@@ -14,6 +14,9 @@ Source0: http://download.gnome.org/sources/folks/0.6/%{name}-%{version}.t
# https://bugzilla.gnome.org/show_bug.cgi?id=658002
Patch0: folks-typelib.patch
+# upstream fix
+Patch1: reentrancy-is-the-suck.patch
+
BuildRequires: telepathy-glib-devel >= %{tp_glib_ver}
BuildRequires: telepathy-glib-vala
BuildRequires: glib2-devel
@@ -51,6 +54,7 @@ developing applications that use %{name}.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
autoreconf -i -f
@@ -88,6 +92,9 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%changelog
+* Thu Sep 8 2011 Matthias Clasen <mclasen at redhat.com> - 1:0.6.2-2
+- Fix a reentrancy problem that causes gnome-shell to crash
+
* Thu Sep 8 2011 Matthias Clasen <mclasen at redhat.com> - 1:0.6.2-1
- Update to 0.6.2
diff --git a/reentrancy-is-the-suck.patch b/reentrancy-is-the-suck.patch
new file mode 100644
index 0000000..e6a4c82
--- /dev/null
+++ b/reentrancy-is-the-suck.patch
@@ -0,0 +1,31 @@
+commit b00dc238aa393a6047b23df39269be00d2342ae2
+Author: Raul Gutierrez Segales <rgs at collabora.co.uk>
+Date: Thu Sep 8 18:19:35 2011 +0100
+
+ IndividualAggregator: copy the list of stores before looping over it
+
+ Because a Backend's list of PersonaStores can change while we are
+ iterating it, we do a copy before starting.
+
+ Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=658580
+
+diff --git a/folks/individual-aggregator.vala b/folks/individual-aggregator.vala
+index 4b158ae..a863800 100644
+--- a/folks/individual-aggregator.vala
++++ b/folks/individual-aggregator.vala
+@@ -548,8 +548,13 @@ public class Folks.IndividualAggregator : Object
+ backend.notify["is-quiescent"].connect (
+ this._backend_is_quiescent_changed_cb);
+
+- /* handle the stores that have already been signaled */
+- foreach (var persona_store in backend.persona_stores.values)
++ /* Handle the stores that have already been signaled. Since
++ * this might change while we are looping, get a copy first.
++ *
++ * https://bugzilla.gnome.org/show_bug.cgi?id=658580
++ */
++ var stores = backend.persona_stores.values.to_array ();
++ foreach (var persona_store in stores)
+ {
+ this._backend_persona_store_added_cb (backend, persona_store);
+ }
More information about the scm-commits
mailing list