From: Frederic Crozat Date: Fri, 20 Jun 2014 14:01:12 +0000 (+0200) Subject: splash: do not process display lists if it is empty or NULL X-Git-Tag: 0.9.2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8b7d4dd3c830e45ea017ab020d7db811662bb3c;p=thirdparty%2Fplymouth.git splash: do not process display lists if it is empty or NULL --- diff --git a/src/plugins/splash/script/plugin.c b/src/plugins/splash/script/plugin.c index f3d72e55..1612efde 100644 --- a/src/plugins/splash/script/plugin.c +++ b/src/plugins/splash/script/plugin.c @@ -328,6 +328,7 @@ stop_script_animation (ply_boot_splash_plugin_t *plugin) script_state_destroy (plugin->script_state); script_lib_sprite_destroy (plugin->script_sprite_lib); + plugin->script_sprite_lib = NULL; script_lib_image_destroy (plugin->script_image_lib); script_lib_plymouth_destroy (plugin->script_plymouth_lib); script_lib_math_destroy (plugin->script_math_lib); diff --git a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c index 64b5ddf6..f292d906 100644 --- a/src/plugins/splash/script/script-lib-sprite.c +++ b/src/plugins/splash/script/script-lib-sprite.c @@ -692,6 +692,9 @@ void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data, pl ply_list_node_t *next_node; script_lib_display_t* display; + if (!data) + return; + node = ply_list_get_first_node (data->displays); while (node) { @@ -713,6 +716,9 @@ script_lib_sprite_refresh (script_lib_sprite_data_t *data) ply_region_t *region = ply_region_new (); ply_list_t *rectable_list; + if (!data) + return; + ply_list_sort_stable (data->sprite_list, &sprite_compare_z); node = ply_list_get_first_node (data->sprite_list); @@ -828,4 +834,5 @@ void script_lib_sprite_destroy (script_lib_sprite_data_t *data) script_parse_op_free (data->script_main_op); script_obj_native_class_destroy (data->class); free (data); + data = NULL; }