mirror of
https://github.com/brl/mutter.git
synced 2025-02-08 17:44:09 +00:00
clutter/actor: Fix GValue leak when overwriting transition values
When the 'initial'/'final' values of an existing transition were being overwritten, the GValues used in _clutter_actor_create_transition() were not being unset. https://gitlab.gnome.org/GNOME/mutter/merge_requests/1033
This commit is contained in:
parent
98040e67a2
commit
2212a44cc2
@ -19265,8 +19265,8 @@ _clutter_actor_create_transition (ClutterActor *actor,
|
|||||||
gboolean call_restore = FALSE;
|
gboolean call_restore = FALSE;
|
||||||
TransitionClosure *clos;
|
TransitionClosure *clos;
|
||||||
va_list var_args;
|
va_list var_args;
|
||||||
GValue initial = G_VALUE_INIT;
|
g_auto (GValue) initial = G_VALUE_INIT;
|
||||||
GValue final = G_VALUE_INIT;
|
g_auto (GValue) final = G_VALUE_INIT;
|
||||||
GType ptype;
|
GType ptype;
|
||||||
char *error;
|
char *error;
|
||||||
|
|
||||||
@ -19315,7 +19315,6 @@ _clutter_actor_create_transition (ClutterActor *actor,
|
|||||||
if (error != NULL)
|
if (error != NULL)
|
||||||
{
|
{
|
||||||
g_critical ("%s: %s", G_STRLOC, error);
|
g_critical ("%s: %s", G_STRLOC, error);
|
||||||
g_value_unset (&initial);
|
|
||||||
g_free (error);
|
g_free (error);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -19337,9 +19336,6 @@ _clutter_actor_create_transition (ClutterActor *actor,
|
|||||||
&final,
|
&final,
|
||||||
pspec);
|
pspec);
|
||||||
|
|
||||||
g_value_unset (&initial);
|
|
||||||
g_value_unset (&final);
|
|
||||||
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -19387,9 +19383,6 @@ _clutter_actor_create_transition (ClutterActor *actor,
|
|||||||
|
|
||||||
/* the actor now owns the transition */
|
/* the actor now owns the transition */
|
||||||
g_object_unref (res);
|
g_object_unref (res);
|
||||||
|
|
||||||
g_value_unset (&initial);
|
|
||||||
g_value_unset (&final);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user