diff options
author | Frederic Crozat <fcrozat@suse.com> | 2014-06-20 16:01:12 +0200 |
---|---|---|
committer | Frederic Crozat <fcrozat@suse.com> | 2014-06-25 14:48:35 +0200 |
commit | d8b7d4dd3c830e45ea017ab020d7db811662bb3c (patch) | |
tree | 0128e8639eb607e1e94516ab6344379c8abf76f9 | |
parent | 9c975c63450d0ed2628ffd632ddc429ad26d81e3 (diff) |
splash: do not process display lists if it is empty or NULL
-rw-r--r-- | src/plugins/splash/script/plugin.c | 1 | ||||
-rw-r--r-- | src/plugins/splash/script/script-lib-sprite.c | 7 |
2 files changed, 8 insertions, 0 deletions
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; } |