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