[Xfce4-commits] [xfce/xfconf] 01/01: Allow to store empty arrays
noreply at xfce.org
noreply at xfce.org
Thu Aug 31 13:56:35 CEST 2017
This is an automated email from the git hooks/post-receive script.
a l i p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfconf.
commit c8215a9074805ddb4a0ba384283e33a573da90f9
Author: Viktor Odintsev <ninetls at xfce.org>
Date: Thu Aug 17 03:35:48 2017 +0300
Allow to store empty arrays
Signed-off-by: Ali Abdallah <ali at xfce.org>
---
common/xfconf-gvaluefuncs.c | 36 +++++++++++++++++++++---------------
1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/common/xfconf-gvaluefuncs.c b/common/xfconf-gvaluefuncs.c
index f2bcae8..38a012b 100644
--- a/common/xfconf-gvaluefuncs.c
+++ b/common/xfconf-gvaluefuncs.c
@@ -473,28 +473,34 @@ xfconf_gvalue_to_gvariant (const GValue *value)
if (G_VALUE_TYPE(value) == G_TYPE_PTR_ARRAY) {
GPtrArray *arr;
- GVariantBuilder builder;
- guint i = 0;
-
- g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
arr = (GPtrArray*)g_value_get_boxed (value);
- /* Check for array and that the array has at least one element */
- g_return_val_if_fail (arr && arr->len != 0, NULL);
+ /* Check for array */
+ g_return_val_if_fail (arr, NULL);
- for (i=0; i < arr->len; ++i) {
- GValue *v = g_ptr_array_index (arr, i);
- GVariant *var = NULL;
+ if (arr->len == 0) {
+ variant = g_variant_ref_sink(g_variant_new ("av", NULL));
+ }
+ else {
+ GVariantBuilder builder;
+ guint i = 0;
- var = xfconf_basic_gvalue_to_gvariant (v);
- if (var) {
- g_variant_builder_add (&builder, "v", var, NULL);
- g_variant_unref (var);
+ g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
+
+ for (i=0; i < arr->len; ++i) {
+ GValue *v = g_ptr_array_index (arr, i);
+ GVariant *var = NULL;
+
+ var = xfconf_basic_gvalue_to_gvariant (v);
+ if (var) {
+ g_variant_builder_add (&builder, "v", var, NULL);
+ g_variant_unref (var);
+ }
}
- }
- variant = g_variant_ref_sink(g_variant_builder_end (&builder));
+ variant = g_variant_ref_sink(g_variant_builder_end (&builder));
+ }
}
else if (G_VALUE_TYPE(value) == G_TYPE_STRV) {
gchar **strlist;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list