[mutter/gbsneto/silence-warnings: 13/15] clutter: Drop g_object_newv from ClutterScriptParser
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gbsneto/silence-warnings: 13/15] clutter: Drop g_object_newv from ClutterScriptParser
- Date: Thu, 8 Nov 2018 18:09:39 +0000 (UTC)
commit d7e1dcc0c996a61a25e2520bcf1a89c6f36f177a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Nov 8 15:22:40 2018 -0200
clutter: Drop g_object_newv from ClutterScriptParser
Build an additional set of (GStrv, GValue[]) and pass it
to the non-deprecated g_object_new_with_properties().
clutter/clutter/clutter-script-parser.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
---
diff --git a/clutter/clutter/clutter-script-parser.c b/clutter/clutter/clutter-script-parser.c
index db8b50ad8..2955a16b7 100644
--- a/clutter/clutter/clutter-script-parser.c
+++ b/clutter/clutter/clutter-script-parser.c
@@ -2208,8 +2208,9 @@ _clutter_script_construct_object (ClutterScript *script,
}
else
{
+ g_autoptr(GPtrArray) param_names = NULL;
+ GArray *param_values;
GList *properties = oinfo->properties;
- GParameter *parameters;
/* every other object: first, we get the construction parameters */
oinfo->properties =
@@ -2219,10 +2220,21 @@ _clutter_script_construct_object (ClutterScript *script,
properties,
¶ms);
- parameters = (GParameter *) (void *) params->data;
- oinfo->object = g_object_newv (oinfo->gtype,
- params->len,
- parameters);
+ /* Convert GParameter → (GStrv, GValue[]) */
+ param_names = g_ptr_array_sized_new (params->len);
+ param_values = g_array_sized_new (TRUE, FALSE, sizeof (GValue), params->len);
+ for (i = 0; i < params->len; i++)
+ {
+ GParameter *param = &g_array_index (params, GParameter, i);
+
+ g_ptr_array_add (param_names, (gchar*) param->name);
+ g_array_append_val (param_values, param->value);
+ }
+
+ oinfo->object = g_object_new_with_properties (oinfo->gtype,
+ params->len,
+ (const gchar **) param_names->pdata,
+ (const GValue*) param_values->data);
/* by sinking the floating reference, we make sure that the reference
* count is correct whether the object is referenced from somewhere
@@ -2238,6 +2250,7 @@ _clutter_script_construct_object (ClutterScript *script,
g_value_unset (¶m->value);
}
+ g_array_free (param_values, FALSE);
g_array_free (params, TRUE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]