After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 692354 - color: disconnect signals when the panel goes away
color: disconnect signals when the panel goes away
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: Color
unspecified
Other All
: Normal normal
: ---
Assigned To: Richard Hughes
Control-Center Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-01-23 05:20 UTC by Matthias Clasen
Modified: 2013-01-23 13:11 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
color: disconnect signals when the panel goes away (2.68 KB, patch)
2013-01-23 05:20 UTC, Matthias Clasen
needs-work Details | Review

Description Matthias Clasen 2013-01-23 05:20:57 UTC
The CdClient object is a singleton, thus it could conceivable
survive the panel, even though we drop our reference in dispose.
In that case, the signal handlers have stale user_data, and
bad things might happen when they trigger.

This patch is a guess at the cause for the stacktrace in
https://bugzilla.redhat.com/show_bug.cgi?id=893914
Comment 1 Matthias Clasen 2013-01-23 05:20:59 UTC
Created attachment 234163 [details] [review]
color: disconnect signals when the panel goes away
Comment 2 Bastien Nocera 2013-01-23 09:23:39 UTC
Review of attachment 234163 [details] [review]:

Looks good.

What would be keeping a hold of a CdClient object though?
Comment 3 Richard Hughes 2013-01-23 09:39:03 UTC
Review of attachment 234163 [details] [review]:

Agreed, nothing else should be using CdClient. The only thing I can think of is if you open the color panel and then do "gnome-control-center color" in another tab -- but I'd hope that checked if the correct panel was already open, so I'm out of ideas.
Comment 4 Thomas Wood 2013-01-23 12:21:10 UTC
Comment on attachment 234163 [details] [review]
color: disconnect signals when the panel goes away

This patch is not quite right. The g_signal_connect_object function requires five arguments, not four.
Comment 5 Matthias Clasen 2013-01-23 13:11:03 UTC
I've fixed that after the fact. Sorry for the brief build breakage.