actor: Add more checks to the redraw queue

This commit is contained in:
Emmanuele Bassi 2010-10-15 16:05:44 +01:00
parent ad0e7a9e15
commit 2b4ee9ab54
2 changed files with 12 additions and 6 deletions

View File

@ -7648,11 +7648,11 @@ clutter_actor_get_paint_visibility (ClutterActor *actor)
static gboolean static gboolean
invalidate_queue_redraw_entry (ClutterActor *self, invalidate_queue_redraw_entry (ClutterActor *self,
void *user_data) gpointer user_data)
{ {
ClutterActorPrivate *priv = self->priv; 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); _clutter_stage_queue_redraw_entry_invalidate (priv->queue_redraw_entry);
return TRUE; return TRUE;

View File

@ -3237,11 +3237,17 @@ free_queue_redraw_entry (ClutterStageQueueRedrawEntry *entry)
} }
void void
_clutter_stage_queue_redraw_entry_invalidate ( _clutter_stage_queue_redraw_entry_invalidate (ClutterStageQueueRedrawEntry *entry)
ClutterStageQueueRedrawEntry *entry) {
if (entry == NULL)
return;
if (entry->actor != NULL)
{ {
g_object_unref (entry->actor); g_object_unref (entry->actor);
entry->actor = NULL; entry->actor = NULL;
}
if (entry->has_clip) if (entry->has_clip)
{ {
clutter_paint_volume_free (&entry->clip); clutter_paint_volume_free (&entry->clip);