about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-02-09 21:46:54 +0000
committerJames Booth <boothj5@gmail.com>2015-02-09 21:46:54 +0000
commit1a98f1404bd44579954358aa95dbb3c45c84f3f3 (patch)
treee24a5e42a85d2d682730e93ad78f517332f8af90 /src/ui
parent50601d4db30431a4da18694f065e922593d9599c (diff)
downloadprofani-tty-1a98f1404bd44579954358aa95dbb3c45c84f3f3.tar.gz
Free resource lists
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/window.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/ui/window.c b/src/ui/window.c
index 1cdf2f26..aba2f40a 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -650,8 +650,6 @@ win_show_info(ProfWin *window, PContact contact)
     const char *name = p_contact_name(contact);
     const char *presence = p_contact_presence(contact);
     const char *sub = p_contact_subscription(contact);
-    GList *resources = p_contact_get_available_resources(contact);
-    GList *ordered_resources = NULL;
     GDateTime *last_activity = p_contact_last_activity(contact);
 
     theme_item_t presence_colour = theme_main_presence_attrs(presence);
@@ -687,20 +685,25 @@ win_show_info(ProfWin *window, PContact contact)
         g_date_time_unref(now);
     }
 
+    GList *resources = p_contact_get_available_resources(contact);
+    GList *ordered_resources = NULL;
     if (resources != NULL) {
         win_save_print(window, '-', NULL, 0, 0, "", "Resources:");
 
         // sort in order of availabiltiy
-        while (resources != NULL) {
-            Resource *resource = resources->data;
+        GList *curr = resources;
+        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);
         }
     }
+    g_list_free(resources);
 
-    while (ordered_resources != NULL) {
-        Resource *resource = ordered_resources->data;
+    GList *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(window, '-', NULL, NO_EOL, presence_colour, "", "  %s (%d), %s", resource->name, resource->priority, resource_presence);
@@ -755,8 +758,9 @@ win_show_info(ProfWin *window, PContact contact)
             caps_destroy(caps);
         }
 
-        ordered_resources = g_list_next(ordered_resources);
+        curr = g_list_next(curr);
     }
+    g_list_free(ordered_resources);
 }
 
 void