From fcf947fe7cc979f601103e73fee2768b21042c5c Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 24 Oct 2012 13:08:41 -0400 Subject: [PATCH] animaton: stop animation when freed It's possible that an animation could get freed before it finishes. In that case, finish the animation right away, so we don't keep running the animation timeout on freed memory. --- src/libply-splash-graphics/ply-animation.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libply-splash-graphics/ply-animation.c b/src/libply-splash-graphics/ply-animation.c index f266c2e4..ed558cfe 100644 --- a/src/libply-splash-graphics/ply-animation.c +++ b/src/libply-splash-graphics/ply-animation.c @@ -73,6 +73,9 @@ struct _ply_animation uint32_t stop_requested : 1; }; +static void ply_animation_stop_now (ply_animation_t *animation); + + ply_animation_t * ply_animation_new (const char *image_dir, const char *frames_prefix) @@ -118,6 +121,9 @@ ply_animation_free (ply_animation_t *animation) if (animation == NULL) return; + if (!animation->is_stopped) + ply_animation_stop_now (animation); + ply_animation_remove_frames (animation); ply_array_free (animation->frames);