Currently, the only way to remove an exported object from the bus is to destroy it. In Telepathy, we've found that this is unwelcome - we often have objects that were meant to be removed from the bus (e.g. a channel that has closed), but are temporarily kept alive by an extra reference held by a sub-object or a pending asynchronous operation. It would be good to have a way to remove objects from the bus other than by their destruction. I believe that my patch for Bug #5688 is a good starting point for this.
Created attachment 24856 [details] [review] Preparatory work on top of #5688 (store more info, needed to unregister)
Created attachment 24857 [details] [review] implement unregistration
Created attachment 24858 [details] [review] regression test
As with Bug #5688, this works in the context of dbus-glib's own `make check`, but I still need to run the telepathy-glib and telepathy-gabble test suites with this patch.
My 'cumulative' git branch, which is the octopus merge of my branches to fix Bug #5688, Bug #13908, Bug #14579, Bug #16776, Bug #20716, Bug #20884, Bug #20886 and Bug #20936, passes its own regression tests, and also the telepathy-glib and telepathy-gabble regression tests. (Patches in those branches were variously written by me, Tobias Mueller, Peter Korsgaard and Mikkel Kamstrup Erlandsen.)
Pushed, thanks for the review (which was on Bug #5688).
Fixed in 0.82, according to Colin's release mail.
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.