aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-03-31 11:11:14 -0500
committerTed Gould <ted@gould.cx>2010-03-31 11:11:14 -0500
commit0562cfa3c0b28d277101d5742de21d7f0ee96d57 (patch)
tree2cdc99591e2e714d42578f7f6563be818bc7ab44
parentcc7a0c520d9a3871a3fd844d6c895ecc6f3260bb (diff)
parent287a76bcd84df72cf8104c16c67224d2f4eb4374 (diff)
downloadlibdbusmenu-0562cfa3c0b28d277101d5742de21d7f0ee96d57.tar.gz
libdbusmenu-0562cfa3c0b28d277101d5742de21d7f0ee96d57.tar.bz2
libdbusmenu-0562cfa3c0b28d277101d5742de21d7f0ee96d57.zip
* Upstream merge
* Unrefing on layout updates (LP: #545026) * Resetting sync versions on disconnection * Removing useless warning
-rw-r--r--debian/changelog9
-rw-r--r--libdbusmenu-glib/client.c16
2 files changed, 23 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 3979ac0..142d224 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+libdbusmenu (0.2.8-0ubuntu2~ppa1) UNRELEASED; urgency=low
+
+ * Upstream merge
+ * Unrefing on layout updates (LP: #545026)
+ * Resetting sync versions on disconnection
+ * Removing useless warning
+
+ -- Ted Gould <ted@ubuntu.com> Wed, 31 Mar 2010 11:07:55 -0500
+
libdbusmenu (0.2.8-0ubuntu1~ppa1) lucid; urgency=low
* Upstream release 0.2.8
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 309a11c..fb2a2bc 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -337,7 +337,12 @@ id_prop_update (DBusGProxy * proxy, gint id, gchar * property, GValue * value, D
g_return_if_fail(priv->root != NULL);
DbusmenuMenuitem * menuitem = dbusmenu_menuitem_find_id(priv->root, id);
- g_return_if_fail(menuitem != NULL);
+ if (menuitem == NULL) {
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Property update '%s' on id %d which couldn't be found", property, id);
+ #endif
+ return;
+ }
dbusmenu_menuitem_property_set_value(menuitem, property, value);
@@ -444,6 +449,9 @@ proxy_destroyed (GObject * gobj_proxy, gpointer userdata)
priv->layoutcall = NULL;
}
+ priv->current_revision = 0;
+ priv->my_revision = 0;
+
build_dbus_proxy(DBUSMENU_CLIENT(userdata));
return;
}
@@ -794,13 +802,17 @@ parse_layout (DbusmenuClient * client, const gchar * layout)
clean up that old root */
if (oldroot != NULL) {
dbusmenu_menuitem_set_root(oldroot, FALSE);
- g_object_unref(oldroot);
}
/* If the root changed we can signal that */
g_signal_emit(G_OBJECT(client), signals[ROOT_CHANGED], 0, priv->root, TRUE);
}
+ /* We need to unref it in this function no matter */
+ if (oldroot != NULL) {
+ g_object_unref(oldroot);
+ }
+
return 1;
}