Ted Gould has proposed merging lp:~ted/dbusmenu/crash-and-repeat into lp:dbusmenu.
Requested reviews: DBus Menu Team (dbusmenu-team) Little fixes for big bugs. - This fixes the "insane duplication" bug as we were keeping an extra reference to the old root in the parse function. - Removes a warning that was a real issue, and wasn't useful. - Resets the revision counters when we loose a connection ensuring a full reset of the menus. -- https://code.launchpad.net/~ted/dbusmenu/crash-and-repeat/+merge/22533 Your team ayatana-commits is subscribed to branch lp:dbusmenu.
=== modified file 'configure.ac' --- configure.ac 2010-03-04 17:10:22 +0000 +++ configure.ac 2010-03-31 14:18:15 +0000 @@ -1,11 +1,11 @@ -AC_INIT(libdbusmenu, 0.2.7, [email protected]) +AC_INIT(libdbusmenu, 0.2.8, [email protected]) AC_COPYRIGHT([Copyright 2009,2010 Canonical]) AC_PREREQ(2.62) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(libdbusmenu, 0.2.7, [-Wno-portability]) +AM_INIT_AUTOMAKE(libdbusmenu, 0.2.8, [-Wno-portability]) AM_MAINTAINER_MODE @@ -78,7 +78,7 @@ ########################### LIBDBUSMENU_CURRENT=1 -LIBDBUSMENU_REVISION=4 +LIBDBUSMENU_REVISION=5 LIBDBUSMENU_AGE=0 AC_SUBST(LIBDBUSMENU_CURRENT) === modified file 'libdbusmenu-glib/client.c' --- libdbusmenu-glib/client.c 2010-02-24 19:17:38 +0000 +++ libdbusmenu-glib/client.c 2010-03-31 14:18:15 +0000 @@ -337,7 +337,12 @@ 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 @@ priv->layoutcall = NULL; } + priv->current_revision = 0; + priv->my_revision = 0; + build_dbus_proxy(DBUSMENU_CLIENT(userdata)); return; } @@ -794,13 +802,17 @@ 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; }
_______________________________________________ Mailing list: https://launchpad.net/~ayatana-commits Post to : [email protected] Unsubscribe : https://launchpad.net/~ayatana-commits More help : https://help.launchpad.net/ListHelp

