Enlightenment CVS committal
Author : cedric
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/data
Modified Files:
evas_array.c
Log Message:
Add evas_array_remove.
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/data/evas_array.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- evas_array.c 26 May 2008 13:17:12 -0000 1.1
+++ evas_array.c 4 Jun 2008 16:39:43 -0000 1.2
@@ -73,3 +73,41 @@
evas_array_flush(array);
free(array);
}
+
+EAPI void
+evas_array_remove(Evas_Array *array, Evas_Bool (*keep)(void *data, void
*gdata), void *gdata)
+{
+ void **tmp;
+ unsigned int total = 0;
+ unsigned int i;
+
+ if (array->total == 0) return ;
+
+ tmp = malloc(sizeof (void*) * array->total);
+ if (!tmp) return ;
+
+ for (i = 0; i < array->count; ++i)
+ {
+ void *data;
+
+ data = _evas_array_get(array, i);
+
+ if (keep(data, gdata))
+ {
+ tmp[total] = data;
+ total++;
+ }
+ }
+
+ free(array->data);
+
+ if (total == 0)
+ {
+ array->data = NULL;
+ free(tmp);
+ }
+ else
+ array->data = tmp;
+
+ array->count = total;
+}
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs