summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Crozat <fcrozat@suse.com>2014-06-20 16:01:12 +0200
committerFrederic Crozat <fcrozat@suse.com>2014-06-25 14:48:35 +0200
commitd8b7d4dd3c830e45ea017ab020d7db811662bb3c (patch)
tree0128e8639eb607e1e94516ab6344379c8abf76f9
parent9c975c63450d0ed2628ffd632ddc429ad26d81e3 (diff)
splash: do not process display lists if it is empty or NULL
-rw-r--r--src/plugins/splash/script/plugin.c1
-rw-r--r--src/plugins/splash/script/script-lib-sprite.c7
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;
}