diff options
author | Ted Gould <ted@canonical.com> | 2009-04-07 13:54:42 -0500 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-04-07 13:54:42 -0500 |
commit | dd987bf8db523d3bf5739849a94cd2c5fb48c1cf (patch) | |
tree | c3418147bc44375a45d3c42e8e4ab31a03e19aac | |
parent | e1988e0509e361b56fd4d48d0bfcbbca5f44ba25 (diff) | |
parent | c3396784993f40c212738cfd28acc89afd5ca70b (diff) | |
download | ayatana-indicator-messages-dd987bf8db523d3bf5739849a94cd2c5fb48c1cf.tar.gz ayatana-indicator-messages-dd987bf8db523d3bf5739849a94cd2c5fb48c1cf.tar.bz2 ayatana-indicator-messages-dd987bf8db523d3bf5739849a94cd2c5fb48c1cf.zip |
Ah, leaks!
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | src/indicator-messages.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index e99eec0..1d47afb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ indicator-messages (0.1.4-0ubuntu2~ppa3) UNRELEASED; urgency=low * Bah, right symbol * More upstream. * g_strcmp0 + * Ah, leaks! -- Ted Gould <ted@ubuntu.com> Fri, 03 Apr 2009 16:32:49 -0500 diff --git a/src/indicator-messages.c b/src/indicator-messages.c index 5d7084e..b988537 100644 --- a/src/indicator-messages.c +++ b/src/indicator-messages.c @@ -36,6 +36,7 @@ static void server_count_changed (AppMenuItem * appitem, guint count, gpointer d static void server_name_changed (AppMenuItem * appitem, gchar * name, gpointer data); static void im_time_changed (ImMenuItem * imitem, glong seconds, gpointer data); static void reconsile_list_and_menu (GList * serverlist, GtkMenuShell * menushell); +static void indicator_removed (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gchar * type, gpointer data); #define DESIGN_TEAM_SIZE design_team_size static GtkIconSize design_team_size; @@ -241,6 +242,12 @@ server_removed (IndicateListener * listener, IndicateListenerServer * server, gc } serverList_t * sltp = (serverList_t *)lookup->data; + + while (sltp->imList) { + imList_t * imitem = (imList_t *)sltp->imList->data; + indicator_removed(listener, server, imitem->indicator, "message", data); + } + serverList = g_list_remove(serverList, sltp); if (sltp->menuitem != NULL) { @@ -443,6 +450,7 @@ indicator_removed (IndicateListener * listener, IndicateListenerServer * server, if (!removed && menuitem != NULL) { g_object_ref(menuitem); + g_free(listItem->data); sl_item->imList = g_list_remove(sl_item->imList, listItem->data); gtk_widget_hide(menuitem); |