Fix parent path introspection data invalidation for multiple levels
authorJohan Hedberg <johan.hedberg@nokia.com>
Thu, 29 Apr 2010 22:23:45 +0000 (01:23 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 29 Apr 2010 22:31:03 +0000 (00:31 +0200)
In the case that parent path data needs to be invalidated we shouldn't
stop at the immediate parent if it doesn't have our own handler
registered but should continue upwards in the tree until we reach root
or our own handler.

gdbus/object.c

index 592e2d3..ff69641 100644 (file)
@@ -308,8 +308,10 @@ static void invalidate_parent_data(DBusConnection *conn, const char *child_path)
                goto done;
 
        if (!dbus_connection_get_object_path_data(conn, parent_path,
-                                                       (void *) &data))
+                                                       (void *) &data)) {
+               invalidate_parent_data(conn, parent_path);
                goto done;
+       }
 
        if (!data)
                goto done;