summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@linux.intel.com>2011-06-07 14:25:17 +0100
committerEmmanuele Bassi <ebassi@linux.intel.com>2011-06-08 13:09:47 +0100
commit486e7a990605d6b825342eb91421969008f55e2f (patch)
treeb4b3674e53631c80e8afd043b35e3f466ec5ad55
parent0513e0243aa393c66adf8976be66ef55dbbbb82e (diff)
downloadclutter-486e7a990605d6b825342eb91421969008f55e2f.tar.gz
actor: Avoid queueing redraws during destruction
If an actor or the stage to which it belongs are being destroyed then there is no point in queueing a redraw that will not be seen anyway. Bailing out early also avoids the case in which a redraw is queued during destruction wil cause redraw entries will be added to the Stage, which will take references on it and cause the Stage never to be finalized. http://bugzilla.clutter-project.org/show_bug.cgi?id=2652 (cherry-picked from commit 19c986c0c6e0aa08ae76ab7d992fbf70ae5e44a0) Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
-rw-r--r--clutter/clutter-actor.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 1d36e6f03..5843e1d5c 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -5125,7 +5125,7 @@ clutter_actor_queue_redraw (ClutterActor *self)
/* Ignore queuing a redraw for actors not descended from a stage */
stage = _clutter_actor_get_stage_internal (self);
- if (stage == NULL)
+ if (stage == NULL || CLUTTER_ACTOR_IN_DESTRUCTION (stage))
return;
self->priv->queue_redraw_entry =