aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib
diff options
context:
space:
mode:
authorChris Coulson <chrisccoulson@ubuntu.com>2011-01-19 14:55:37 +0000
committerChris Coulson <chrisccoulson@ubuntu.com>2011-01-19 14:55:37 +0000
commitbe239149b9b3b875f9c52137e6bdc19a78724f72 (patch)
tree0cbe0e9022aa82e428931b2738a539ee2c6a941c /libdbusmenu-glib
parent88a9ad428716c028fc8de094b814623af07adec6 (diff)
downloadlibdbusmenu-be239149b9b3b875f9c52137e6bdc19a78724f72.tar.gz
libdbusmenu-be239149b9b3b875f9c52137e6bdc19a78724f72.tar.bz2
libdbusmenu-be239149b9b3b875f9c52137e6bdc19a78724f72.zip
Ensure that we can recover from GetLayout failing
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r--libdbusmenu-glib/client.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 58d6360..29ed4a0 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -1538,6 +1538,14 @@ parse_layout (DbusmenuClient * client, const gchar * layout)
static void
update_layout_cb (GObject * proxy, GAsyncResult * res, gpointer data)
{
+ DbusmenuClient * client = DBUSMENU_CLIENT(data);
+ DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
+
+ if (priv->layoutcall != NULL) {
+ g_object_unref(priv->layoutcall);
+ priv->layoutcall = NULL;
+ }
+
GError * error = NULL;
GVariant * params = NULL;
@@ -1554,9 +1562,6 @@ update_layout_cb (GObject * proxy, GAsyncResult * res, gpointer data)
g_variant_get(params, "(us)", &rev, &xml);
g_variant_unref(params);
- DbusmenuClient * client = DBUSMENU_CLIENT(data);
- DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
-
guint parseable = parse_layout(client, xml);
g_free(xml);
@@ -1567,10 +1572,6 @@ update_layout_cb (GObject * proxy, GAsyncResult * res, gpointer data)
priv->my_revision = rev;
/* g_debug("Root is now: 0x%X", (unsigned int)priv->root); */
- if (priv->layoutcall != NULL) {
- g_object_unref(priv->layoutcall);
- priv->layoutcall = NULL;
- }
#ifdef MASSIVEDEBUGGING
g_debug("Client signaling layout has changed.");
#endif