[Bug 77882] TpBaseClient: stop implementing TpSvcAnything

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon May 12 09:20:55 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=77882

--- Comment #15 from Guillaume Desmottes <guillaume.desmottes at collabora.co.uk> ---
(In reply to comment #13)
> "base-client: be a GDBusObjectSkeleton": +1
> 
> "base-client: use gdbus-codegen's skeleton to implement Observer":
> 
>  - update_interfaces() does more than updating interfaces now since it calls
> observer_skeleton_init(). Also it can be called each time when unregister
> and re-register and callding observer_skeleton_init() multiple times will
> leak self->priv->observer_skeleton. What about inlining that function into
> _register() and clear all skeletons in _unregister() ?

Can't we just re-use the existing skeletons? (see my latest patch in this
branch). We don't have API to stop being an observer/approver/handler so I
think that should be fine.

>  - create_channel_request_array() is leaking key, "o" will dup key, you can
> use "&o" instead to get internal "const gchar *".

Good point; fixed.

>  - in _tp_base_client_observe_channel() the requests_hash argument is not an
> "hash" anymore, maybe rename to requests_variant ?

Done. The new patches are in
http://cgit.collabora.com/git/user/cassidy/telepathy-glib/log/?h=next-base-client-77882

(In reply to comment #14)
> (In reply to comment #13)
> > "base-client: be a GDBusObjectSkeleton": +1
> 
> Actually as discussed on IRC, you could also connect
> "interface-added/removed" on self and warn when they are emitted after
> register to make sure a buggy client won't do
> g_dbus_object_skeleton_add_interface().

I'm not convinced by this actually. Why should we prevent a custom TpBaseClient
subclass to add not-Telepathy-related ifaces at any time it wants to?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the telepathy-bugs mailing list