]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
splash: do not process display lists if it is empty or NULL
authorFrederic Crozat <fcrozat@suse.com>
Fri, 20 Jun 2014 14:01:12 +0000 (16:01 +0200)
committerFrederic Crozat <fcrozat@suse.com>
Wed, 25 Jun 2014 12:48:35 +0000 (14:48 +0200)
src/plugins/splash/script/plugin.c
src/plugins/splash/script/script-lib-sprite.c

index f3d72e55713dcce806a45e4b520ba15cb3c42e62..1612efde4d68ff94593682f8f67ecd5e9ddedfee 100644 (file)
@@ -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);
index 64b5ddf65022435c224e920c3d427656fc5891a4..f292d906456f2a79a41f6d31fd080b2077172c22 100644 (file)
@@ -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;
 }