Bug 22812

Summary: BaseConnection::self_handle should not be set to 0 before the object is disposed
Product: Telepathy Reporter: Guillaume Desmottes <guillaume.desmottes>
Component: rakiaAssignee: Mikhail Zabaluev <mikhail.zabaluev>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 17751    

Description Guillaume Desmottes 2009-07-17 02:42:44 UTC
+++ This bug was initially created as a clone of Bug #17751 +++

Currently, BaseConnection::self_handle is set to 0 just before status-changed(Disconnected, …) is emitted, and in 0.17.16 it will change just after status-changed(Disconnected, …) is emitted to allow ChannelManagers listening for that signal to use the self_handle.

Ideally, the self_handle would be valid until the BaseConnection is disposed, but CMs may wrongly depend on it being 0 by the time the dispose method for their subclass of TpBaseConnection is called.  (For instance, Gabble asserts that it is 0.)  We should audit and fix all known connection managers, then move the unreffing to dispose.
Comment 1 Guillaume Desmottes 2009-07-17 02:42:59 UTC
I removed the assertion in this branch: http://git.collabora.co.uk/?p=user/cassidy/telepathy-sofiasip;a=shortlog;h=refs/heads/remove-self_handle-assert
Comment 2 Simon McVittie 2009-07-20 11:28:36 UTC
Misha, can we get this in a release at some point? The patch looks good to me.
Comment 3 Mikhail Zabaluev 2009-07-21 02:03:37 UTC
(In reply to comment #2)
> Misha, can we get this in a release at some point? The patch looks good to me.

It's certainly good to merge into master. I should make a release in the next week or two.
Comment 4 Guillaume Desmottes 2009-07-21 09:52:27 UTC
I merged my branch to master. Thanks for the review.

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.