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

@ -1,3 +1,10 @@
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().
Sun Dec 21 22:57:58 2003 Matthias Clasen <maclas@gmx.de>
* m4macros/glib-gettext.m4: Quote macro names to support

View File

@ -1,3 +1,10 @@
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().
Sun Dec 21 22:57:58 2003 Matthias Clasen <maclas@gmx.de>
* m4macros/glib-gettext.m4: Quote macro names to support

View File

@ -1,3 +1,10 @@
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().
Sun Dec 21 22:57:58 2003 Matthias Clasen <maclas@gmx.de>
* m4macros/glib-gettext.m4: Quote macro names to support

View File

@ -1,3 +1,10 @@
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().
Sun Dec 21 22:57:58 2003 Matthias Clasen <maclas@gmx.de>
* m4macros/glib-gettext.m4: Quote macro names to support

View File

@ -1,3 +1,10 @@
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().
Sun Dec 21 22:57:58 2003 Matthias Clasen <maclas@gmx.de>
* m4macros/glib-gettext.m4: Quote macro names to support

View File

@ -1,3 +1,10 @@
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().
Sun Dec 21 22:57:58 2003 Matthias Clasen <maclas@gmx.de>
* m4macros/glib-gettext.m4: Quote macro names to support

View File

@ -1,3 +1,7 @@
Fri Dec 26 02:04:49 2003 Matthias Clasen <maclas@gmx.de>
* glib/glib-sections.txt: Add g_ptr_array_foreach().
Sun Dec 21 01:01:34 2003 Matthias Clasen <maclas@gmx.de>
* glib/tmpl/misc_utils.sgml: Document the encoding of

View File

@ -1638,6 +1638,7 @@ g_ptr_array_sort_with_data
g_ptr_array_set_size
g_ptr_array_index
g_ptr_array_free
g_ptr_array_foreach
</SECTION>

View File

@ -639,6 +639,29 @@ g_ptr_array_sort_with_data (GPtrArray *array,
user_data);
}
/**
* g_ptr_array_foreach:
* @array: a #GPtrArray
* @func: the function to call for each array element
* @user_data: user data to pass to the function
*
* Calls a function for each element of a #GPtrArray.
*
* Since: 2.4
**/
void
g_ptr_array_foreach (GPtrArray *array,
GFunc func,
gpointer user_data)
{
guint i;
g_return_if_fail (array);
for (i = 0; i < array->len; i++)
(*func) (array->pdata[i], user_data);
}
/* Byte arrays
*/

View File

@ -126,6 +126,9 @@ void g_ptr_array_sort (GPtrArray *array,
void g_ptr_array_sort_with_data (GPtrArray *array,
GCompareDataFunc compare_func,
gpointer user_data);
void g_ptr_array_foreach (GPtrArray *array,
GFunc func,
gpointer user_data);
/* Byte arrays, an array of guint8. Implemented as a GArray,

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);