diff options
| author | Andrew Gaul <andrew@gaul.org> | 2013-07-21 19:35:13 -0700 |
|---|---|---|
| committer | Andrew Gaul <andrew@gaul.org> | 2013-07-21 19:35:13 -0700 |
| commit | 74cc24d38e8541450bc8df67a8014a046f89fa51 (patch) | |
| tree | 627220af4f19e164d7b3e68382182a65c49e62a4 /services | |
| parent | ce8a93f2465c4b9d9f484b3d4edf4d8089d182fd (diff) | |
Disconnect signals connected in panel-service.c:on_entry_added
This addresses a memory leak observed in: https://bugs.launchpad.net/unity/+bug/1203607 (bzr r3429.3.1)
Diffstat (limited to 'services')
| -rw-r--r-- | services/panel-service.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/services/panel-service.c b/services/panel-service.c index da3dfe6e6..f7158c86d 100644 --- a/services/panel-service.c +++ b/services/panel-service.c @@ -994,6 +994,15 @@ on_entry_removed (IndicatorObject *object, * FIXME this in libappmenu.so to avoid to send an "entry-removed" signal * when switching the focus from a window to one of its dialog children */ + if (GTK_IS_LABEL (entry->label)) + { + g_signal_handlers_disconnect_by_data (entry->label, object); + } + if (GTK_IS_IMAGE (entry->image)) + { + g_signal_handlers_disconnect_by_data (entry->image, object); + } + gchar *entry_id = get_indicator_entry_id_by_entry (entry); g_hash_table_remove (self->priv->id2entry_hash, entry_id); g_free (entry_id); |
