GVariant: clean up g_variant_get_child_value()
authorRyan Lortie <desrt@desrt.ca>
Wed, 3 Dec 2014 07:10:24 +0000 (02:10 -0500)
committerMaciej Wereski <m.wereski@partner.samsung.com>
Fri, 10 Jul 2015 09:47:43 +0000 (11:47 +0200)
Remove this one outstanding case of direct construction of GVariant
instances and port it to use g_variant_alloc() like everyone else.

glib/gvariant-core.c

index 0117add..32b1a88 100644 (file)
@@ -1012,15 +1012,10 @@ g_variant_get_child_value (GVariant *value,
       s_child = g_variant_serialised_get_child (serialised, index_);
 
       /* create a new serialised instance out of it */
-      child = g_slice_new (GVariant);
-      child->type_info = s_child.type_info;
-      child->state = (value->state & STATE_TRUSTED) |
-                     STATE_SERIALISED;
-      child->size = s_child.size;
-      child->ref_count = 1;
-      child->contents.serialised.bytes =
-        g_bytes_ref (value->contents.serialised.bytes);
-      child->contents.serialised.data = s_child.data;
+      child = g_variant_new_serialised (s_child.type_info,
+                                        g_bytes_ref (value->contents.serialised.bytes),
+                                        s_child.data, s_child.size,
+                                        value->state & STATE_TRUSTED);
     }
 
   return child;