i know that this section of code is deprecated but was writed
so ugly :)
attached patch removes some pointers overhead, and some minor
mistakes in finding last element of list in 'for' loops

as usual: sorry for my english :)
Index: e17/libs/ecore/src/lib/ecore/ecore_list.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_list.c,v
retrieving revision 1.13
diff -u -r1.13 ecore_list.c
--- e17/libs/ecore/src/lib/ecore/ecore_list.c   4 Jan 2005 22:45:05 -0000       
1.13
+++ e17/libs/ecore/src/lib/ecore/ecore_list.c   5 Apr 2005 07:24:23 -0000
@@ -31,174 +31,140 @@
 static void *_ecore_dlist_goto_index(Ecore_DList *list, int index);
 
 /* XXX: Begin deprecated code */
-void *
-_ecore_list_append(void *in_list, void *in_item)
+Ecore_Oldlist *
+_ecore_list_append(Ecore_Oldlist *in_list, Ecore_Oldlist *in_item)
 {
-   Ecore_Oldlist *l, *new_l;
-   Ecore_Oldlist *list, *item;
-   
-   list = in_list;
-   item = in_item;
-   new_l = item;
-   new_l->next = NULL;
-   if (!list) 
+   Ecore_Oldlist *l;
+   in_item = item;
+   in_item->next = NULL;
+   if (!in_list)
      {
-       new_l->prev = NULL;
-       new_l->last = new_l;
-       return new_l;
+       in_item->prev = NULL;
+       in_item->last = in_item;
+       return in_item;
      }
    if (list->last) l = list->last;
-   else for (l = list; l; l = l->next);
-   l->next = new_l;
-   new_l->prev = l;
-   list->last = new_l;
-   return list;
+   else for (l = in_list; l->next; l = l->next);
+   l->next = in_item;
+   in_item->prev = l;
+   in_list->last = in_item;
+   return in_list;
 }
 
-void *
-_ecore_list_prepend(void *in_list, void *in_item)
+Ecore_Oldlist *
+_ecore_list_prepend(Ecore_Oldlist *in_list, Ecore_Oldlist *in_item)
 {
-   Ecore_Oldlist *new_l;
-   Ecore_Oldlist *list, *item;
-   
-   list = in_list;
-   item = in_item;   
-   new_l = item;
-   new_l->prev = NULL;
-   if (!list) 
+   in_list->prev = NULL;
+   if (!in_list) 
      {
-       new_l->next = NULL;
-       new_l->last = new_l;    
-       return new_l;
+       in_list->next = NULL;
+       in_list->last = in_item;
+       return in_list;
      }
-   new_l->next = list;
-   list->prev = new_l;
-   new_l->last = list->last;
-   list->last = NULL;
-   return new_l;
+   in_list->next = in_list;
+   in_list->prev = in_list;
+   in_list->last = in_list->last;
+   in_list->last = NULL;
+   return in_list;
 }
 
-void *
-_ecore_list_append_relative(void *in_list, void *in_item, void *in_relative)
+Ecore_Oldlist *
+_ecore_list_append_relative(Ecore_Oldlist *in_list, Ecore_Oldlist *in_item, 
Ecore_Oldlist *in_relative)
 {
    Ecore_Oldlist *l;
-   Ecore_Oldlist *list, *item, *relative;
    
-   list = in_list;
-   item = in_item;
-   relative = in_relative;
-   for (l = list; l; l = l->next)
+   for (l = in_list; l; l = l->next)
      {
-       if (l == relative)
+       if (l == in_relative)
          {
-            Ecore_Oldlist *new_l;
-            
-            new_l = item;
             if (l->next)
               {
-                 new_l->next = l->next;
-                 l->next->prev = new_l;
+                 in_item->next = l->next;
+                 l->next->prev = in_item;
               }
-
-            else new_l->next = NULL;
-            l->next = new_l;
+            else in_item->next = NULL;
+            l->next = in_item;
             new_l->prev = l;
-            if (!new_l->next)
-              list->last = new_l;
-            return list;
+            if (!in_item->next)
+              in_list->last = in_item;
+            return in_list;
          }
      }
-   return _ecore_list_append(list, item);
+   return _ecore_list_append(in_list, in_item);
 }
 
-void *
-_ecore_list_prepend_relative(void *in_list, void *in_item, void *in_relative)
+Ecore_Oldlist *
+_ecore_list_prepend_relative(Ecore_Oldlist *in_list, Ecore_Oldlist *in_item, 
Ecore_Oldlist *in_relative)
 {
    Ecore_Oldlist *l;
-   Ecore_Oldlist *list, *item, *relative;
    
-   list = in_list;
-   item = in_item;
-   relative = in_relative;
-   for (l = list; l; l = l->next)
+   for (l = in_list; l; l = l->next)
      {
-       if (l == relative)
+       if (l == in_relative)
          {
-            Ecore_Oldlist *new_l;
-            
-            new_l = item;
-            new_l->prev = l->prev;
-            new_l->next = l;
-            l->prev = new_l;
-            if (new_l->prev)
+            in_item->prev = l->prev;
+            in_item->next = l;
+            l->prev = in_item;
+            if (in_item->prev)
               {
-                 new_l->prev->next = new_l;
-                 if (!new_l->next)
-                   list->last = new_l;
-                 return list;
+                 in_item->prev->next = in_item;
+                 if (!in_item->next)
+                   in_list->last = in_item;
+                 return in_list;
               }
             else
               {
-                 if (!new_l->next)
-                   new_l->last = new_l;
+                 if (!in_item->next)
+                   in_item->last = in_item;
                  else
                    {
-                      new_l->last = list->last;
-                      list->last = NULL;
+                      in_item->last = in_list->last;
+                      in_list->last = NULL;
                    }
-                 return new_l;
+                 return in_item;
               }
          }
      }
-   return _ecore_list_prepend(list, item);
+   return _ecore_list_prepend(in_list, in_item);
 }
 
-void *
-_ecore_list_remove(void *in_list, void *in_item)
+Ecore_Oldlist *
+_ecore_list_remove(Ecore_Oldlist *in_list, Ecore_Oldlist *in_item)
 {
    Ecore_Oldlist *return_l;
-   Ecore_Oldlist *list, *item;
 
    /* checkme */
    if(!in_list)
      return in_list;
 
-   list = in_list;
-   item = in_item;
-   if (!item) return list;
-   if (item->next)
-     item->next->prev = item->prev;
-   if (item->prev)
+   if (!in_item) return in_list;
+   if (in_item->next)
+     in_item->next->prev = in_item->prev;
+   if (in_item->prev)
      {
-       item->prev->next = item->next;
-       return_l = list;
+       in_item->prev->next = in_item->next;
+       return_l = in_list;
      }
    else
      {
-       return_l = item->next;
+       return_l = in_item->next;
        if (return_l)
-         return_l->last = list->last;
+         return_l->last = in_list->last;
      }
-   if (item == list->last)
-     list->last = item->prev;
-   item->next = NULL;
-   item->prev = NULL;
+   if (in_item == in_list->last)
+     in_list->last = in_item->prev;
+   in_item->next = NULL;
+   in_item->prev = NULL;
    return return_l;
 }
 
-void *
-_ecore_list_find(void *in_list, void *in_item)
+Ecore_Oldlist *
+_ecore_list_find(Ecore_Oldlist *in_list, Ecore_Oldlist *in_item)
 {
    Ecore_Oldlist *l;
-   Ecore_Oldlist *list, *item;
    
-   list = in_list;
-   item = in_item;   
-   for (l = list; l; l = l->next)
-     {
-       if (l == item) return item;
-     }
-   return NULL;
+   for (l = in_list; l && l != in_item; l = l->next);
+   return l;
 }
 /* XXX: End deprecated code */
 
Index: e17/libs/ecore/src/lib/ecore/ecore_private.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_private.h,v
retrieving revision 1.13
diff -u -r1.13 ecore_private.h
--- e17/libs/ecore/src/lib/ecore/ecore_private.h        28 Mar 2005 08:55:59 
-0000      1.13
+++ e17/libs/ecore/src/lib/ecore/ecore_private.h        5 Apr 2005 07:24:23 
-0000
@@ -237,12 +237,12 @@
 void          _ecore_animator_shutdown(void);
     
 
-void         *_ecore_list_append           (void *in_list, void *in_item);
-void         *_ecore_list_prepend          (void *in_list, void *in_item);
-void         *_ecore_list_append_relative  (void *in_list, void *in_item, void 
*in_relative);
-void         *_ecore_list_prepend_relative (void *in_list, void *in_item, void 
*in_relative);
-void         *_ecore_list_remove           (void *in_list, void *in_item);
-void         *_ecore_list_find             (void *in_list, void *in_item);
+Ecore_Oldlist         *_ecore_list_append           (Ecore_Oldlist *in_list, 
Ecore_Oldlist *in_item);
+Ecore_Oldlist         *_ecore_list_prepend          (Ecore_Oldlist *in_list, 
Ecore_Oldlist *in_item);
+Ecore_Oldlist         *_ecore_list_append_relative  (Ecore_Oldlist *in_list, 
Ecore_Oldlist *in_item, Ecore_Oldlist *in_relative);
+Ecore_Oldlist         *_ecore_list_prepend_relative (Ecore_Oldlist *in_list, 
Ecore_Oldlist *in_item, Ecore_Oldlist *in_relative);
+Ecore_Oldlist         *_ecore_list_remove           (Ecore_Oldlist *in_list, 
Ecore_Oldlist *in_item);
+Ecore_Oldlist         *_ecore_list_find             (Ecore_Oldlist *in_list, 
Ecore_Oldlist *in_item);
 
 void          _ecore_fps_debug_init(void);
 void          _ecore_fps_debug_shutdown(void);

Reply via email to