Commit 2c388e21 authored by Jonas Ådahl's avatar Jonas Ådahl

clutter/transition: Don't split reference counting with actor

ClutterActor took a reference in its transition 'stopped' handler,
aiming to keep the transition alive during signal emission even if it
was removed during. This is, however, already taken care of by
ClutterTimeline, by always taking a reference during its 'stopped'
signal emission, so no need to add another one.

This also has the bonus of making reference ownership simpler, as well
as avoidance of double free if an actor was destroyed before a
transition has finished.

!828
parent fb6e2743
Pipeline #121623 passed with stages
in 6 minutes and 16 seconds
......@@ -19521,13 +19521,6 @@ on_transition_stopped (ClutterTransition *transition,
if (clutter_transition_get_remove_on_complete (transition))
{
/* we take a reference here because removing the closure will release the
* reference on the transition, and we want the transition to survive the
* signal emission. It'll be unreferenced by the remove-on-complete
* handling in ClutterTransition::stopped.
*/
g_object_ref (transition);
/* this is safe, because the timeline has now stopped,
* so we won't recurse; the reference on the Animatable
* will be dropped by the ::stopped signal closure in
......
......@@ -134,7 +134,6 @@ clutter_transition_stopped (ClutterTimeline *timeline,
clutter_transition_detach (CLUTTER_TRANSITION (timeline),
priv->animatable);
g_clear_object (&priv->animatable);
g_object_unref (timeline);
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment