From: Timo Teräs Date: Wed, 22 Mar 2023 11:49:47 +0000 (+0200) Subject: script: fix deletion of sprites after full refresh X-Git-Tag: 23.51.283~31^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=167507880d6fbb9a6346d87d3394e56188b7c80c;p=thirdparty%2Fplymouth.git script: fix deletion of sprites after full refresh The node pointer is reused in the if (data->full_refresh) block causing the following sprite list walking to fail. Fix this by moving the sprite list first node getting next to the while loop where it belongs. --- diff --git a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c index 1d90fef0..6397ea28 100644 --- a/src/plugins/splash/script/script-lib-sprite.c +++ b/src/plugins/splash/script/script-lib-sprite.c @@ -757,9 +757,6 @@ script_lib_sprite_refresh (script_lib_sprite_data_t *data) ply_list_sort_stable (data->sprite_list, &sprite_compare_z); - node = ply_list_get_first_node (data->sprite_list); - - if (data->full_refresh) { for (node = ply_list_get_first_node (data->displays); node; @@ -775,6 +772,7 @@ script_lib_sprite_refresh (script_lib_sprite_data_t *data) data->full_refresh = false; } + node = ply_list_get_first_node (data->sprite_list); while (node) { sprite_t *sprite = ply_list_node_get_data (node); ply_list_node_t *next_node = ply_list_get_next_node (data->sprite_list,