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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs