r43948 - in /desktop/experimental/glib2.0/debian: changelog patches/0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch patches/series
laney at users.alioth.debian.org
laney at users.alioth.debian.org
Fri Nov 28 18:04:21 UTC 2014
Author: laney
Date: Fri Nov 28 18:04:21 2014
New Revision: 43948
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=43948
Log:
0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch:
Cherry-pick patch from upstream. Check signal detail too when looking for
pending signal handlers, so that subscribing to changed signals with a
detail works again.
Added:
desktop/experimental/glib2.0/debian/patches/0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch
Modified:
desktop/experimental/glib2.0/debian/changelog
desktop/experimental/glib2.0/debian/patches/series
Modified: desktop/experimental/glib2.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/changelog?rev=43948&op=diff
==============================================================================
--- desktop/experimental/glib2.0/debian/changelog [utf-8] (original)
+++ desktop/experimental/glib2.0/debian/changelog [utf-8] Fri Nov 28 18:04:21 2014
@@ -1,3 +1,12 @@
+glib2.0 (2.43.1-2) UNRELEASED; urgency=medium
+
+ * 0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch:
+ Cherry-pick patch from upstream. Check signal detail too when looking for
+ pending signal handlers, so that subscribing to changed signals with a
+ detail works again.
+
+ -- Iain Lane <laney at debian.org> Fri, 28 Nov 2014 17:55:55 +0000
+
glib2.0 (2.43.1-1) experimental; urgency=medium
* New upstream release 2.43.1, changes since 2.42.1:
Added: desktop/experimental/glib2.0/debian/patches/0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/patches/0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch?rev=43948&op=file
==============================================================================
--- desktop/experimental/glib2.0/debian/patches/0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch (added)
+++ desktop/experimental/glib2.0/debian/patches/0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch [utf-8] Fri Nov 28 18:04:21 2014
@@ -0,0 +1,62 @@
+From d511d6b37f051d2cd8698055cbd85ee7f987325d Mon Sep 17 00:00:00 2001
+From: Lars Uebernickel <lars.uebernickel at canonical.com>
+Date: Fri, 28 Nov 2014 13:06:04 +0100
+Subject: [PATCH] GSettings: fix check for delaying backend subscription
+
+g_settings_has_signal_handlers() checks whether any of the signals has
+pending handlers. However, g_signal_has_handler_pending() matches on
+exact detail, even when passing 0. Subscribing to one of GSettings'
+signals with a detail will fail this check and never connect to the
+backend.
+
+Fix this by calling has_handler_pending() with the key as detail as
+well.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=740848
+---
+ gio/gsettings.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/gio/gsettings.c b/gio/gsettings.c
+index fb2ce25..23a14bc 100644
+--- a/gio/gsettings.c
++++ b/gio/gsettings.c
+@@ -317,18 +317,24 @@ g_settings_real_writable_change_event (GSettings *settings,
+ }
+
+ static gboolean
+-g_settings_has_signal_handlers (GSettings *settings)
++g_settings_has_signal_handlers (GSettings *settings,
++ const gchar *key)
+ {
+ GSettingsClass *class = G_SETTINGS_GET_CLASS (settings);
++ GQuark keyq;
+
+ if (class->change_event != g_settings_real_change_event ||
+ class->writable_change_event != g_settings_real_writable_change_event)
+ return TRUE;
+
++ keyq = g_quark_from_string (key);
++
+ if (g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_WRITABLE_CHANGE_EVENT], 0, TRUE) ||
+ g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_WRITABLE_CHANGED], 0, TRUE) ||
++ g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_WRITABLE_CHANGED], keyq, TRUE) ||
+ g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_CHANGE_EVENT], 0, TRUE) ||
+- g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_CHANGED], 0, TRUE))
++ g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_CHANGED], 0, TRUE) ||
++ g_signal_has_handler_pending (settings, g_settings_signals[SIGNAL_CHANGED], keyq, TRUE))
+ return TRUE;
+
+ /* None of that? Then surely nobody is watching.... */
+@@ -1078,7 +1084,7 @@ g_settings_read_from_backend (GSettings *settings,
+ gchar *path;
+
+ /* If we are not yet watching for changes, consider doing it now... */
+- if (!settings->priv->is_subscribed && g_settings_has_signal_handlers (settings))
++ if (!settings->priv->is_subscribed && g_settings_has_signal_handlers (settings, key->name))
+ {
+ g_settings_backend_subscribe (settings->priv->backend, settings->priv->path);
+ settings->priv->is_subscribed = TRUE;
+--
+2.1.3
+
Modified: desktop/experimental/glib2.0/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/patches/series?rev=43948&op=diff
==============================================================================
--- desktop/experimental/glib2.0/debian/patches/series [utf-8] (original)
+++ desktop/experimental/glib2.0/debian/patches/series [utf-8] Fri Nov 28 18:04:21 2014
@@ -20,3 +20,4 @@
regex-if-PCRE-is-8.34-or-later-disable-auto-possessi.patch
regex-test-do-not-assert-that-system-PCRE-allows-P-1.patch
regex-test-do-not-assert-that-system-PCRE-still-has-.patch
+0001-GSettings-fix-check-for-delaying-backend-subscriptio.patch
More information about the pkg-gnome-commits
mailing list