From 4a20426057742f81231c2146ed138291d7ca9fe1 Mon Sep 17 00:00:00 2001 From: Arkadiy Illarionov Date: Sat, 23 Mar 2024 23:46:40 +0300 Subject: [PATCH] Use g_list_free_full to free draw_queue and draw_queue_2pass --- src/renderer-tiles.cc | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/renderer-tiles.cc b/src/renderer-tiles.cc index 4101f260..8c1a1c22 100644 --- a/src/renderer-tiles.cc +++ b/src/renderer-tiles.cc @@ -1780,32 +1780,21 @@ static gboolean rt_queue_draw_idle_cb(gpointer data) return rt_queue_schedule_next_draw(rt, FALSE); } -static void rt_queue_list_free(GList *list) +static void rt_queue_data_free(gpointer data) { - GList *work; - - work = list; - while (work) - { - QueueData *qd; - - qd = static_cast(work->data); - work = work->next; + auto *qd = static_cast(data); - qd->it->qd = nullptr; - qd->it->qd2 = nullptr; - g_free(qd); - } - - g_list_free(list); + qd->it->qd = nullptr; + qd->it->qd2 = nullptr; + g_free(qd); } static void rt_queue_clear(RendererTiles *rt) { - rt_queue_list_free(rt->draw_queue); + g_list_free_full(rt->draw_queue, rt_queue_data_free); rt->draw_queue = nullptr; - rt_queue_list_free(rt->draw_queue_2pass); + g_list_free_full(rt->draw_queue_2pass, rt_queue_data_free); rt->draw_queue_2pass = nullptr; if (rt->draw_idle_id) -- 2.20.1