Enlightenment CVS committal Author : cedric Project : e17 Module : proto/eina
Dir : e17/proto/eina/src/lib Modified Files: eina_magic.c eina_list.c eina_array.c Log Message: After benchmarking, providing inline does impact performance of list and array user. =================================================================== RCS file: /cvs/e/e17/proto/eina/src/lib/eina_magic.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- eina_magic.c 6 Aug 2008 18:15:19 -0000 1.2 +++ eina_magic.c 8 Aug 2008 14:20:11 -0000 1.3 @@ -73,6 +73,7 @@ EINA_ARRAY_ITER_NEXT(strings, i, ems) if (ems->magic == magic) return ems->string; + EINA_ARRAY_ITER_END; return NULL; } @@ -95,6 +96,7 @@ ems->string = NULL; return ; } + EINA_ARRAY_ITER_END; ems = malloc(sizeof (Eina_Magic_String)); ems->magic = magic; @@ -103,7 +105,7 @@ else ems->string = NULL; - _eina_array_append(strings, ems); + eina_array_append(strings, ems); } EAPI void =================================================================== RCS file: /cvs/e/e17/proto/eina/src/lib/eina_list.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- eina_list.c 7 Aug 2008 13:09:09 -0000 1.4 +++ eina_list.c 8 Aug 2008 14:20:11 -0000 1.5 @@ -65,21 +65,6 @@ /*============================================================================* * Local * *============================================================================*/ -struct _Eina_List /** A linked list node */ -{ - void *data; /**< Pointer to list element payload */ - Eina_List *next; /**< Next member in the list */ - Eina_List *prev; /**< Previous member in the list */ - struct _Eina_List_Accounting *accounting; /**< Private list accounting info - don't touch */ -}; - -typedef struct _Eina_List_Accounting Eina_List_Accounting; -struct _Eina_List_Accounting -{ - Eina_List *last; - int count; -}; - static inline Eina_List_Accounting* _eina_list_mempool_accounting_new(__UNUSED__ Eina_List *list) { @@ -604,12 +589,7 @@ EAPI void * eina_list_find(const Eina_List *list, const void *data) { - const Eina_List *l; - - for (l = list; l; l = l->next) - { - if (l->data == data) return (void *)data; - } + if (eina_list_find_list(list, data)) return data; return NULL; } @@ -712,12 +692,7 @@ * @endcode * @ingroup Eina_List_Traverse_Group */ -EAPI Eina_List * -eina_list_last(const Eina_List *list) -{ - if (!list) return NULL; - return list->accounting->last; -} +static inline Eina_List *eina_list_last(const Eina_List *list); /** * Get the next list node after the specified list node @@ -740,12 +715,7 @@ * @endcode * @ingroup Eina_List_Traverse_Group */ -EAPI Eina_List * -eina_list_next(const Eina_List *list) -{ - if (!list) return NULL; - return list->next; -} +static inline Eina_List *eina_list_next(const Eina_List *list); /** * Get the previous list node before the specified list node @@ -769,12 +739,7 @@ * @endcode * @ingroup Eina_List_Traverse_Group */ -EAPI Eina_List * -eina_list_prev(const Eina_List *list) -{ - if (!list) return NULL; - return list->prev; -} +static inline Eina_List *eina_list_prev(const Eina_List *list); /** * @defgroup Eina_List_General_Group Linked List General Functions @@ -803,12 +768,7 @@ * @endcode * @ingroup Eina_List_General_Group */ -EAPI void * -eina_list_data(const Eina_List *list) -{ - if (!list) return NULL; - return list->data; -} +static inline void *eina_list_data(const Eina_List *list); /** * Get the count of the number of items in a list @@ -829,12 +789,7 @@ * @endcode * @ingroup Eina_List_General_Group */ -EAPI int -eina_list_count(const Eina_List *list) -{ - if (!list) return 0; - return list->accounting->count; -} +static inline int eina_list_count(const Eina_List *list); /** * Get the nth member's data pointer in a list =================================================================== RCS file: /cvs/e/e17/proto/eina/src/lib/eina_array.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- eina_array.c 7 Aug 2008 17:12:06 -0000 1.5 +++ eina_array.c 8 Aug 2008 14:20:11 -0000 1.6 @@ -44,18 +44,6 @@ } EAPI void -eina_array_append(Eina_Array *array, void *data) -{ - _eina_array_append(array, data); -} - -EAPI void * -eina_array_get(Eina_Array *array, unsigned int index) -{ - return _eina_array_get(array, index); -} - -EAPI void eina_array_clean(Eina_Array *array) { array->count = 0; @@ -119,7 +107,7 @@ for (i = 0; i < array->count; ++i) { - data = _eina_array_get(array, i); + data = eina_array_get(array, i); if (keep(data, gdata) == EINA_FALSE) break; } @@ -127,7 +115,7 @@ if (i < array->count) ++i; for (; i < array->count; ++i) { - data = _eina_array_get(array, i); + data = eina_array_get(array, i); if (keep(data, gdata) == EINA_TRUE) break; } @@ -164,7 +152,7 @@ for (; i < array->count; ++i) { - data = _eina_array_get(array, i); + data = eina_array_get(array, i); if (keep(data, gdata)) { ------------------------------------------------------------------------- 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