Enlightenment CVS committal

Author  : cedric
Project : e17
Module  : proto/eina

Dir     : e17/proto/eina/src/include


Modified Files:
        eina_array.h eina_inline_array.x 


Log Message:
Fix and improvement for stringshare and array, thanks to the tests suite.


===================================================================
RCS file: /cvs/e/e17/proto/eina/src/include/eina_array.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- eina_array.h        30 Jul 2008 16:34:54 -0000      1.1
+++ eina_array.h        1 Aug 2008 12:26:35 -0000       1.2
@@ -1,6 +1,8 @@
 #ifndef EINA_ARRAY_H_
 #define EINA_ARRAY_H_
 
+#include <stdlib.h>
+
 #include "eina_types.h"
 
 typedef struct _Eina_Array       Eina_Array;             /**< A generic vector 
*/
@@ -20,5 +22,9 @@
 EAPI void        eina_array_clean                (Eina_Array *array);
 EAPI void        eina_array_flush                (Eina_Array *array);
 EAPI void        eina_array_remove               (Eina_Array *array, Eina_Bool 
(*keep)(void *data, void *gdata), void *gdata);
+
+#define EINA_ARRAY_ITER_NEXT(array, index, item) for ((index) = 0, (item) = 
_eina_array_get((array), (index)); (index) < (array)->count; ++(index), (item) 
= _eina_array_get((array), (index)))
+
+#include "eina_inline_array.x"
 
 #endif
===================================================================
RCS file: /cvs/e/e17/proto/eina/src/include/eina_inline_array.x,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- eina_inline_array.x 30 Jul 2008 16:34:54 -0000      1.1
+++ eina_inline_array.x 1 Aug 2008 12:26:35 -0000       1.2
@@ -11,15 +11,15 @@
 _eina_array_grow(Eina_Array *array)
 {
    void **tmp;
-   size_t total;
-   
+   unsigned int total;
+
    total = array->total + array->step;
    tmp = realloc(array->data, sizeof (void*) * total);
-   if (!tmp) return 0;
-   
+   if (UNLIKELY(!tmp)) return 0;
+
    array->total = total;
    array->data = tmp;
-   
+
    return 1;
 }
 
@@ -28,7 +28,7 @@
 {
    if (UNLIKELY((array->count + array->step) > array->total))
      if (!_eina_array_grow(array)) return ;
-   
+
    array->data[array->count++] = data;
 }
 
@@ -36,6 +36,12 @@
 _eina_array_get(Eina_Array *array, unsigned int index)
 {
    return array->data[index];
+}
+
+static inline unsigned int
+eina_array_count(Eina_Array *array)
+{
+   return array->count;
 }
 
 #endif



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to