diff -r b3ac7a4a6fc7 -r d25228fc7b8e libpurple/savedstatuses.c --- a/libpurple/savedstatuses.c Fri Oct 18 23:29:33 2019 +0300 +++ b/libpurple/savedstatuses.c Fri Oct 18 23:30:32 2019 +0300 @@ -117,13 +117,7 @@ g_free(status->title); g_free(status->message); - - while (status->substatuses != NULL) - { - PurpleSavedStatusSub *substatus = status->substatuses->data; - status->substatuses = g_list_remove(status->substatuses, substatus); - free_saved_status_sub(substatus); - } + g_list_free_full(status->substatuses, (GDestroyNotify)free_saved_status_sub); purple_request_close_with_handle(status); g_free(status); } @@ -1251,11 +1245,7 @@ sync_statuses(); } - while (saved_statuses != NULL) { - PurpleSavedStatus *saved_status = saved_statuses->data; - saved_statuses = g_list_remove(saved_statuses, saved_status); - free_saved_status(saved_status); - } + g_list_free_full(saved_statuses, (GDestroyNotify)free_saved_status); g_hash_table_destroy(creation_times); creation_times = NULL;