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);