From 268c33e1c6e7ee5a4a26299311289933c66460e2 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 9 Feb 2015 19:50:41 +0000 Subject: Free resource lists on /account command --- .gitignore | 2 +- src/ui/console.c | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 7f15f3c9..37449348 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,7 @@ configure.scan stamp-h1 *~ *dirstamp -valgrind.out +valgrind*.out* core bugs/ TODO diff --git a/src/ui/console.c b/src/ui/console.c index cdf5d1b8..2c37c40c 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -717,20 +717,24 @@ cons_show_account(ProfAccount *account) GList *resources = jabber_get_available_resources(); GList *ordered_resources = NULL; - if (resources != NULL) { + GList *curr = resources; + if (curr != NULL) { win_save_println(console, "Resources:"); // sort in order of availabiltiy - while (resources != NULL) { - Resource *resource = resources->data; + while (curr != NULL) { + Resource *resource = curr->data; ordered_resources = g_list_insert_sorted(ordered_resources, resource, (GCompareFunc)resource_compare_availability); - resources = g_list_next(resources); + curr = g_list_next(curr); } } - while (ordered_resources != NULL) { - Resource *resource = ordered_resources->data; + g_list_free(resources); + + curr = ordered_resources; + while (curr != NULL) { + Resource *resource = curr->data; const char *resource_presence = string_from_resource_presence(resource->presence); theme_item_t presence_colour = theme_main_presence_attrs(resource_presence); win_save_vprint(console, '-', NULL, NO_EOL, presence_colour, "", " %s (%d), %s", resource->name, resource->priority, resource_presence); @@ -785,8 +789,9 @@ cons_show_account(ProfAccount *account) caps_destroy(caps); } - ordered_resources = g_list_next(ordered_resources); + curr = g_list_next(curr); } + g_list_free(ordered_resources); } cons_alert(); -- cgit 1.4.1-2-gfad0