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

Reply via email to