Blob Blame History Raw
From 80949841b030d5272ae625bc3cca82d2affd09e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Wed, 10 Jul 2019 12:29:26 +0200
Subject: [PATCH 09/28] clutter/actor: Take the marging boxed type if valid

We were using a clutter margin boxed type, copying it instead of passing the
ownership, causing a memory leak.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/682
---
 clutter/clutter/clutter-actor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index 7111d824d..f7b7be0ab 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -14695,61 +14695,61 @@ clutter_actor_parse_custom_node (ClutterScriptable *scriptable,
                                      "written ClutterScript definitions.");
 #endif
 
       l = parse_behaviours (script, actor, node);
 
       g_value_init (value, G_TYPE_POINTER);
       g_value_set_pointer (value, l);
 
       retval = TRUE;
     }
   else if (strcmp (name, "actions") == 0 ||
            strcmp (name, "constraints") == 0 ||
            strcmp (name, "effects") == 0)
     {
       GSList *l;
 
       l = parse_actor_metas (script, actor, node);
 
       g_value_init (value, G_TYPE_POINTER);
       g_value_set_pointer (value, l);
 
       retval = TRUE;
     }
   else if (strcmp (name, "margin") == 0)
     {
       ClutterMargin *margin = parse_margin (actor, node);
 
       if (margin)
         {
           g_value_init (value, CLUTTER_TYPE_MARGIN);
-          g_value_set_boxed (value, margin);
+          g_value_take_boxed (value, margin);
           retval = TRUE;
         }
     }
 
   return retval;
 }
 
 static void
 clutter_actor_set_custom_property (ClutterScriptable *scriptable,
                                    ClutterScript     *script,
                                    const gchar       *name,
                                    const GValue      *value)
 {
   ClutterActor *actor = CLUTTER_ACTOR (scriptable);
 
 #ifdef CLUTTER_ENABLE_DEBUG
   if (G_UNLIKELY (CLUTTER_HAS_DEBUG (SCRIPT)))
     {
       gchar *tmp = g_strdup_value_contents (value);
 
       CLUTTER_NOTE (SCRIPT,
                     "in ClutterActor::set_custom_property('%s') = %s",
                     name,
                     tmp);
 
       g_free (tmp);
     }
 #endif /* CLUTTER_ENABLE_DEBUG */
 
   if (strcmp (name, "rotation") == 0)
-- 
2.26.2