mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-01 06:33:41 +02:00
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:
committed by
Matthias Clasen
parent
07cbd50ea8
commit
e09de99eb5
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user