[glib/gvariant] finish updates to varargs to match docs



commit 5a2c1c7f24d7892dd14d9dacfbc200dff084f308
Author: Ryan Lortie <desrt desrt ca>
Date:   Wed Jan 13 12:19:52 2010 -0500

    finish updates to varargs to match docs

 glib/glib.symbols                     |    2 ++
 glib/gvariant-valist.c                |   14 +++++---------
 glib/tests/gvariant-varargs-strings.c |   16 +++++-----------
 3 files changed, 12 insertions(+), 20 deletions(-)
---
diff --git a/glib/glib.symbols b/glib/glib.symbols
index 88e715e..42932ad 100644
--- a/glib/glib.symbols
+++ b/glib/glib.symbols
@@ -1678,6 +1678,7 @@ g_variant_new_uint16
 g_variant_new_int16
 g_variant_new_uint32
 g_variant_new_int32
+g_variant_new_handle
 g_variant_new_uint64
 g_variant_new_int64
 g_variant_new_double
@@ -1694,6 +1695,7 @@ g_variant_get_uint16
 g_variant_get_int16
 g_variant_get_uint32
 g_variant_get_int32
+g_variant_get_handle
 g_variant_get_uint64
 g_variant_get_int64
 g_variant_get_double
diff --git a/glib/gvariant-valist.c b/glib/gvariant-valist.c
index 58b8e39..c68a351 100644
--- a/glib/gvariant-valist.c
+++ b/glib/gvariant-valist.c
@@ -281,14 +281,12 @@ g_variant_valist_new (const gchar **format_string,
             (string[1] == 's' ||
              (string[1] == '&' && string[2] == 's')))
           {
-            gconstpointer ptr;
-            gint n_items;
+            const gchar * const *ptr;
 
             *format_string += 3 + (string[1] == '&');
-            ptr = va_arg (*app, gconstpointer);
-            n_items = va_arg (*app, gint);
+            ptr = va_arg (*app, const gchar * const *);
 
-            return g_variant_new_strv ((const gchar **) ptr, n_items);
+            return g_variant_new_strv (ptr, -1);
           }
 
         g_error ("Currently, only ^as and ^a&s are supported");
@@ -728,10 +726,8 @@ g_variant_valist_get (GVariant     *value,
         if (string[0] == 'a')
           {
             gpointer *ptr;
-            gint *n_items;
 
             ptr = va_arg (*app, gpointer *);
-            n_items = va_arg (*app, gint *);
 
             if (string[1] == 's')
               {
@@ -741,7 +737,7 @@ g_variant_valist_get (GVariant     *value,
                   g_strfreev (*ptr);
 
                 if (value)
-                  *ptr = g_variant_dup_strv (value, n_items);
+                  *ptr = g_variant_dup_strv (value, NULL);
                 else
                   *ptr = NULL;
 
@@ -756,7 +752,7 @@ g_variant_valist_get (GVariant     *value,
                   g_free (*ptr);
 
                 if (value)
-                  *ptr = g_variant_get_strv (value, n_items);
+                  *ptr = g_variant_get_strv (value, NULL);
                 else
                   *ptr = NULL;
 
diff --git a/glib/tests/gvariant-varargs-strings.c b/glib/tests/gvariant-varargs-strings.c
index 76454da..31c7c36 100644
--- a/glib/tests/gvariant-varargs-strings.c
+++ b/glib/tests/gvariant-varargs-strings.c
@@ -16,37 +16,31 @@ test (void)
   const gchar *array[] = {"one", "two", "three", "four", NULL};
   GVariant *one, *two;
   gchar **a;
-  gint num;
 
   one = g_variant_new_strv (array, -1);
   two = g_variant_new_strv (array, 3);
 
-  g_variant_get (one, "^as", &a, &num);
-  g_assert_cmpint (num, ==, 4);
+  g_variant_get (one, "^as", &a);
   check (a, "one,two,three,four");
   g_strfreev (a);
 
-  g_variant_get (two, "^as", &a, &num);
-  g_assert_cmpint (num, ==, 3);
+  g_variant_get (two, "^as", &a);
   check (a, "one,two,three");
   g_strfreev (a);
 
-  g_variant_get (one, "^a&s", &a, &num);
-  g_assert_cmpint (num, ==, 4);
+  g_variant_get (one, "^a&s", &a);
   check (a, "one,two,three,four");
   g_free (a);
 
-  g_variant_get (two, "^a&s", &a, &num);
-  g_assert_cmpint (num, ==, 3);
+  g_variant_get (two, "^a&s", &a);
   check (a, "one,two,three");
   g_free (a);
 
   g_variant_unref (one);
 
-  g_variant_get (two, "^as", &a, &num);
+  g_variant_get (two, "^as", &a);
   g_variant_unref (two);
 
-  g_assert_cmpint (num, ==, 3);
   check (a, "one,two,three");
   g_strfreev (a);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]