I have been refactoring Gabble's Call implementation a bit. My branch is a work in progress: http://git.collabora.co.uk/?p=user/wjt/telepathy-gabble-wjt.git;a=shortlog;h=refs/heads/call-base-classes It depends on bug 29790 and bug 29778, and unfortunately can't be merged as-is because of the bug I haven't fixed I describe in bug 29790.
http://git.collabora.co.uk/?p=user/wjt/telepathy-gabble-wjt.git;a=commitdiff;h=f2a26e0b66ab5 Please cherry-pick this leak fix.
(In reply to comment #1) > http://git.collabora.co.uk/?p=user/wjt/telepathy-gabble-wjt.git;a=commitdiff;h=f2a26e0b66ab5 > > Please cherry-pick this leak fix. http://git.collabora.co.uk/?p=telepathy-gabble.git;a=commitdiff;h=1a476dbd5d1ea177ff3f3a3a11ce9a82df70d400 I'll fix up the remaining bits of branch.
I have now updated this branch to fix a leak I found while using chunks of GabbleBaseCallChannel in Ring. (Actually, it wasn't a leak in Gabble, kind of by accident; but I fixed Gabble to make the non-leakiness more explicit.) Really, we should have a GabbleBaseBaseCallChannel for the non-Jingle- and non-media-interface-specific bits of GabbleBaseCallChannel, but my life is too short for that right now. So I just ripped a bunch of code from that file and pasted it into Ring. BaseContent and BaseStream are used verbatim.
Branch looks good. Had a go at doing the merge, but it's non-trivial thanks to dtmf lalaing. I posted to alsuren/call-base-classes-merged if anyone wants to take a look.
On second thoughts, sjoerd suggests that I put everything into yell and port gabble to use that before I merge. That forces me to do more thorough review and make sure everything really is portable before I continue. It also avoids too much churn in gabble master. I feel like I'm going to end up holding quite a lot of state in my head about what's happening in all of the different Call implementations and spec branches by the time this gets merged, but hopefully it won't be too horrible.
(In reply to comment #4) > Branch looks good. Had a go at doing the merge, but it's non-trivial thanks to > dtmf lalaing. I posted to alsuren/call-base-classes-merged if anyone wants to > take a look. G_DEFINE_TYPE_WITH_CODE(GabbleBaseCallChannel, gabble_base_call_channel, - G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL, channel_iface_init); + TP_TYPE_BASE_CHANNEL, G_IMPLEMENT_INTERFACE (GABBLE_TYPE_SVC_CHANNEL_TYPE_CALL, - call_iface_init) + call_iface_init); + G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES, + tp_dbus_properties_mixin_iface_init); + G_IMPLEMENT_INTERFACE (TP_TYPE_EXPORTABLE_CHANNEL, NULL); + G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL); + G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_DTMF, + dtmf_iface_init); - ); This looks suspicious. It looks like the merge has restored a whole bunch of interfaces that BaseChannel does for us. Otherwise the merge looks fine (even if you do want to defer it :)).
this got merged by sjoerd.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.