New function to call a function for each element of a GPtrArray. (#114790)

Fri Dec 26 02:03:58 2003  Matthias Clasen  <maclas@gmx.de>

	* glib/garray.[hc] (g_ptr_array_foreach): New function to
	call a function for each element of a GPtrArray.  (#114790)

	* tests/array-test.c (main): Add a test for g_ptr_array_foreach().
This commit is contained in:
Matthias Clasen
2003-12-26 01:04:12 +00:00
committed by Matthias Clasen
parent 07cbd50ea8
commit e09de99eb5
11 changed files with 86 additions and 0 deletions

View File

@@ -57,6 +57,15 @@ typedef struct {
} GlibTestInfo;
static void
sum_up (gpointer data,
gpointer user_data)
{
gint *sum = (gint *)user_data;
*sum += GPOINTER_TO_INT (data);
}
int
main (int argc,
char *argv[])
@@ -65,6 +74,7 @@ main (int argc,
GArray *garray;
GPtrArray *gparray;
GByteArray *gbarray;
gint sum = 0;
/* array tests */
garray = g_array_new (FALSE, FALSE, sizeof (gint));
@@ -93,6 +103,9 @@ main (int argc,
for (i = 0; i < 10000; i++)
if (g_ptr_array_index (gparray, i) != GINT_TO_POINTER (i))
g_print ("array fails: %p ( %p )\n", g_ptr_array_index (gparray, i), GINT_TO_POINTER (i));
g_ptr_array_foreach (gparray, sum_up, &sum);
g_assert (sum == 49995000);
g_ptr_array_free (gparray, TRUE);