From 59948748b24ca6f266b1eb957849e3d3127242bd Mon Sep 17 00:00:00 2001 From: Joe Shaw Date: Wed, 9 Mar 2005 17:30:38 +0000 Subject: 2005-03-09 Joe Shaw * dbus/dbus-object-tree.c (_dbus_object_tree_unregister_and_unlock): If checks are enabled and we try to unregister a path that's not registered, still go through the process of unlocking and don't just return. --- dbus/dbus-object-tree.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'dbus/dbus-object-tree.c') diff --git a/dbus/dbus-object-tree.c b/dbus/dbus-object-tree.c index 87624f5d..1d6029af 100644 --- a/dbus/dbus-object-tree.c +++ b/dbus/dbus-object-tree.c @@ -451,6 +451,9 @@ _dbus_object_tree_unregister_and_unlock (DBusObjectTree *tree, _dbus_assert (path != NULL); + unregister_function = NULL; + user_data = NULL; + subtree = find_subtree (tree, path, &i); #ifndef DBUS_DISABLE_CHECKS @@ -459,7 +462,7 @@ _dbus_object_tree_unregister_and_unlock (DBusObjectTree *tree, _dbus_warn ("Attempted to unregister path (path[0] = %s path[1] = %s) which isn't registered\n", path[0] ? path[0] : "null", path[1] ? path[1] : "null"); - return; + goto unlock; } #else _dbus_assert (subtree != NULL); @@ -495,6 +498,7 @@ _dbus_object_tree_unregister_and_unlock (DBusObjectTree *tree, } subtree = NULL; +unlock: connection = tree->connection; /* Unlock and call application code */ -- cgit