actor: Add more checks to the redraw queue
authorEmmanuele Bassi <ebassi@linux.intel.com>
Fri, 15 Oct 2010 15:05:44 +0000 (16:05 +0100)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Fri, 15 Oct 2010 15:05:44 +0000 (16:05 +0100)
clutter/clutter-actor.c
clutter/clutter-stage.c

index 9d86189..5f61835 100644 (file)
@@ -7648,11 +7648,11 @@ clutter_actor_get_paint_visibility (ClutterActor *actor)
 
 static gboolean
 invalidate_queue_redraw_entry (ClutterActor *self,
-                               void *user_data)
+                               gpointer      user_data)
 {
   ClutterActorPrivate *priv = self->priv;
 
-  if (priv->queue_redraw_entry)
+  if (priv->queue_redraw_entry != NULL)
     _clutter_stage_queue_redraw_entry_invalidate (priv->queue_redraw_entry);
 
   return TRUE;
index f51c8dc..156f1fd 100644 (file)
@@ -3237,11 +3237,17 @@ free_queue_redraw_entry (ClutterStageQueueRedrawEntry *entry)
 }
 
 void
-_clutter_stage_queue_redraw_entry_invalidate (
-                                          ClutterStageQueueRedrawEntry *entry)
+_clutter_stage_queue_redraw_entry_invalidate (ClutterStageQueueRedrawEntry *entry)
 {
-  g_object_unref (entry->actor);
-  entry->actor = NULL;
+  if (entry == NULL)
+    return;
+
+  if (entry->actor != NULL)
+    {
+      g_object_unref (entry->actor);
+      entry->actor = NULL;
+    }
+
   if (entry->has_clip)
     {
       clutter_paint_volume_free (&entry->clip);