GNOME Bugzilla – Bug 746411
network: Fix a bunch of crashers after the panel has gone away
Last modified: 2015-03-19 15:34:25 UTC
.
Created attachment 299738 [details] [review] network: Fix the network panel being kept alive NetObjects and CcNetworkPanel aren't widgets, and hold references to each other. Simplify things by having NetObject hold a pointer to CcNetworkPanel (and the singletons NMRemoteSettings and NMClient) instead.
Created attachment 299739 [details] [review] network: Remove unused GtkListStore objects
Created attachment 299740 [details] [review] network: Fix GtkListStore leak in IPv{4,6} dialogues
Created attachment 299741 [details] [review] network: Add sanity checks NetDevice and NetObject
Created attachment 299742 [details] [review] network: Fix reference leak of NetVpn The only reference is owned by the devices GtkListStore.
Created attachment 299743 [details] [review] network: Fix warning on panel exit Now that the VPN object is getting finalized, make sure not to warn if the NMClient is already gone.
Created attachment 299744 [details] [review] network: Remove use of temporary variable No need to copy a static string before using it.
Created attachment 299745 [details] [review] network: Fix reference leak of NetProxy Every time we got the list of devices from the devices GtkListStore, we were leaking the only element that wasn't a NetDevice, the proxy page. Make sure to unref' it by hand if we're not going to add it to the list (the elements of which will be unref'ed properly).
Created attachment 299746 [details] [review] network: Fix reference leak of NetVirtualDevices Once we've added them to the devices GtkListStore, it owns them, don't leave a reference lingering.
Might fix: https://bugzilla.redhat.com/show_bug.cgi?id=1181775 https://bugzilla.redhat.com/show_bug.cgi?id=1177106 https://bugzilla.redhat.com/show_bug.cgi?id=1055067 https://bugzilla.redhat.com/show_bug.cgi?id=1044714
Review of attachment 299738 [details] [review]: Makes sense. Might want to mention the weak reference in the commit message.
Review of attachment 299739 [details] [review]: Are you sure these are really unused ?! I see a reference to liststore_proxy_method in the same ui file, in the properties of combobox_proxy_mode
Review of attachment 299740 [details] [review]: Looks correct
Review of attachment 299741 [details] [review]: Makes sense
Review of attachment 299742 [details] [review]: Looks correct. But the net_virt object seems to have the same issue ?!
Review of attachment 299743 [details] [review]: sure
Review of attachment 299744 [details] [review]: looks fine
Review of attachment 299745 [details] [review]: ok
Review of attachment 299746 [details] [review]: ah right, thats what I complained about a few patches up
these look like excellent candidates for backporting to 3.14 too, for distros shipping stable releases
Review of attachment 299739 [details] [review]: Certain. There's a liststore_proxy_method in network.ui, which I'm removing, and there's one in network-proxy.ui, which is where combobox_proxy_mode also is. Resetting the status.
Attachment 299738 [details] pushed as 60f6ba1 - network: Fix the network panel being kept alive Attachment 299739 [details] pushed as 0e428f2 - network: Remove unused GtkListStore objects Attachment 299740 [details] pushed as 219a94e - network: Fix GtkListStore leak in IPv{4,6} dialogues Attachment 299741 [details] pushed as 234ed23 - network: Add sanity checks NetDevice and NetObject Attachment 299742 [details] pushed as eb14e55 - network: Fix reference leak of NetVpn Attachment 299743 [details] pushed as ba6da76 - network: Fix warning on panel exit Attachment 299744 [details] pushed as f6f4e7b - network: Remove use of temporary variable Attachment 299745 [details] pushed as 2cf597e - network: Fix reference leak of NetProxy Attachment 299746 [details] pushed as a678193 - network: Fix reference leak of NetVirtualDevices