summaryrefslogtreecommitdiff
path: root/gvdb/gvdb-reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'gvdb/gvdb-reader.c')
-rw-r--r--gvdb/gvdb-reader.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/gvdb/gvdb-reader.c b/gvdb/gvdb-reader.c
index aa3154f..9509388 100644
--- a/gvdb/gvdb-reader.c
+++ b/gvdb/gvdb-reader.c
@@ -332,7 +332,7 @@ gvdb_table_list_from_item (GvdbTable *table,
/**
* gvdb_table_get_names:
* @table: a #GvdbTable
- * @length: the number of items returned, or %NULL
+ * @length: (optional): the number of items returned, or %NULL
*
* Gets a list of all names contained in @table.
*
@@ -344,11 +344,11 @@ gvdb_table_list_from_item (GvdbTable *table,
* above calls in the case of the corrupted file. Note also that the
* returned strings may not be utf8.
*
- * Returns: a %NULL-terminated list of strings, of length @length
+ * Returns: (array length=length): a %NULL-terminated list of strings, of length @length
**/
gchar **
gvdb_table_get_names (GvdbTable *table,
- gint *length)
+ gsize *length)
{
gchar **names;
gint n_names;
@@ -462,7 +462,7 @@ gvdb_table_get_names (GvdbTable *table,
{
GPtrArray *fixed_names;
- fixed_names = g_ptr_array_new ();
+ fixed_names = g_ptr_array_sized_new (n_names);
for (i = 0; i < n_names; i++)
if (names[i] != NULL)
g_ptr_array_add (fixed_names, names[i]);
@@ -474,7 +474,10 @@ gvdb_table_get_names (GvdbTable *table,
}
if (length)
- *length = n_names;
+ {
+ G_STATIC_ASSERT (sizeof (*length) >= sizeof (n_names));
+ *length = n_names;
+ }
return names;
}