On Tue, 18.02.14 00:02, David Herrmann ([email protected]) wrote:
Sorry for the late review!
> However, on object_removed() I cannot do that as node_vtable_get_userdata() is
> very likely to return "0" for all these objects. So there is no way to figure
> out which interfaces actually existed on that thing. We would require users to
> call it *before* destroying/unlinking the actual object. I don't know whether
> that's ok to assume?
I would assume that it is OK to assume that. People should call this
function before half-destroying their object. I mean we are not reading
the properties after all, just the interfaces and I think that should be
quite OK to require.
Certainly something to document though one day...
> +static int object_added_append_all_prefix(
> + sd_bus *bus,
> + sd_bus_message *m,
> + Set *s,
> + const char *prefix,
> + const char *path,
> + bool require_fallback) {
> +
> + if (!streq_ptr(c->interface, previous_interface)) {
> + /* interface already handled by a previous run? */
> + if (set_get(s, c->interface))
> + continue;
We actually allow multiple vtables with the same interface, and order
them together in the vtable list, so that we can iterate through them
easily with trivial duplicate reduction. Keeping a Set object here
appears unnecessary? Or did I miss something here?
Otherwise looks good!
Lennart
--
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel