[glib/gvariant] finish updates to varargs to match docs
- From: Ryan Lortie <ryanl src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [glib/gvariant] finish updates to varargs to match docs
- Date: Wed, 13 Jan 2010 17:20:06 +0000 (UTC)
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]