Enlightenment CVS committal
Author : rbdpngn
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore
Modified Files:
ecore_list.c
Log Message:
Somehow this bug has slipped through for years.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_list.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- ecore_list.c 30 Jul 2004 12:28:29 -0000 1.10
+++ ecore_list.c 2 Nov 2004 16:11:36 -0000 1.11
@@ -240,8 +240,6 @@
memset(list, 0, sizeof(Ecore_List));
- ECORE_INIT_LOCKS(list);
-
return TRUE;
}
@@ -256,17 +254,12 @@
CHECK_PARAM_POINTER("list", list);
- ECORE_WRITE_LOCK(list);
-
while (list->first) {
data = _ecore_list_remove_first(list);
if (list->free_func)
list->free_func(data);
}
- ECORE_WRITE_UNLOCK(list);
- ECORE_DESTROY_LOCKS(list);
-
FREE(list);
}
@@ -281,12 +274,8 @@
{
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
list->free_func = free_func;
- ECORE_WRITE_UNLOCK(list);
-
return TRUE;
}
@@ -301,13 +290,9 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_READ_LOCK(list);
-
if (list->nodes)
ret = FALSE;
- ECORE_READ_UNLOCK(list);
-
return ret;
}
@@ -322,12 +307,8 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_READ_LOCK(list);
-
ret = list->index;
- ECORE_READ_UNLOCK(list);
-
return ret;
}
@@ -342,12 +323,8 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_READ_LOCK(list);
-
ret = list->nodes;
- ECORE_READ_UNLOCK(list);
-
return ret;
}
@@ -374,12 +351,8 @@
node = ecore_list_node_new();
node->data = data;
- ECORE_WRITE_LOCK(list);
-
ret = _ecore_list_append_0(list, node);
- ECORE_WRITE_UNLOCK(list);
-
return ret;
}
@@ -387,9 +360,7 @@
static int _ecore_list_append_0(Ecore_List * list, Ecore_List_Node *end)
{
if (list->last) {
- ECORE_WRITE_LOCK(list->last);
list->last->next = end;
- ECORE_WRITE_UNLOCK(list->last);
}
list->last = end;
@@ -421,9 +392,7 @@
node = ecore_list_node_new();
node->data = data;
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_prepend_0(list, node);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -432,9 +401,7 @@
static int _ecore_list_prepend_0(Ecore_List * list, Ecore_List_Node *start)
{
/* Put it at the beginning of the list */
- ECORE_WRITE_LOCK(start);
start->next = list->first;
- ECORE_WRITE_UNLOCK(start);
list->first = start;
@@ -465,9 +432,7 @@
node = ecore_list_node_new();
node->data = data;
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_insert(list, node);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -492,16 +457,12 @@
}
/* Setup the fields of the new node */
- ECORE_WRITE_LOCK(new_node);
new_node->next = list->current;
- ECORE_WRITE_UNLOCK(new_node);
/* And hook the node into the list */
_ecore_list_goto_index(list, ecore_list_index(list) - 1);
- ECORE_WRITE_LOCK(list->current);
list->current->next = new_node;
- ECORE_WRITE_UNLOCK(list->current);
/* Now move the current item to the inserted item */
list->current = new_node;
@@ -529,9 +490,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_remove_0(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -561,9 +520,6 @@
_ecore_list_goto_index(list, list->index - 1);
- ECORE_WRITE_LOCK(list->current);
- ECORE_WRITE_LOCK(old);
-
list->current->next = old->next;
old->next = NULL;
ret = old->data;
@@ -571,9 +527,6 @@
_ecore_list_next(list);
- ECORE_WRITE_UNLOCK(old);
- ECORE_WRITE_UNLOCK(list->current);
-
ecore_list_node_destroy(old, NULL);
list->nodes--;
@@ -592,13 +545,10 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
data = _ecore_list_remove_0(list);
if (list->free_func)
list->free_func(data);
- ECORE_WRITE_UNLOCK(list);
-
return TRUE;
}
@@ -615,9 +565,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_remove_first(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -631,10 +579,8 @@
if (!list)
return FALSE;
- ECORE_WRITE_UNLOCK(list);
if (ecore_list_is_empty(list))
return FALSE;
- ECORE_WRITE_LOCK(list);
if (!list->first)
return FALSE;
@@ -651,10 +597,8 @@
if (list->last == old)
list->last = list->first;
- ECORE_WRITE_LOCK(old);
ret = old->data;
old->data = NULL;
- ECORE_WRITE_UNLOCK(old);
ecore_list_node_destroy(old, NULL);
list->nodes--;
@@ -674,9 +618,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_remove_last(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -703,22 +645,20 @@
if (list->first == old)
list->first = NULL;
for (prev = list->first; prev && prev->next != old; prev = prev->next);
+ list->last = prev;
if (prev) {
prev->next = NULL;
- list->last = prev;
if (list->current == old) {
list->current = NULL;
}
}
- ECORE_WRITE_LOCK(old);
if (old) {
old->next = NULL;
ret = old->data;
old->data = NULL;
}
- ECORE_WRITE_UNLOCK(old);
ecore_list_node_destroy(old, NULL);
list->nodes--;
@@ -745,9 +685,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_goto_index(list, index);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -789,9 +727,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_goto(list, data);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -808,7 +744,6 @@
index = 1;
node = list->first;
- ECORE_READ_LOCK(node);
while (node && node->data) {
Ecore_List_Node *next;
@@ -816,15 +751,12 @@
break;
next = node->next;
- ECORE_READ_UNLOCK(node);
node = next;
- ECORE_READ_LOCK(node);
index++;
}
- ECORE_READ_UNLOCK(node);
if (!node)
return NULL;
@@ -846,12 +778,8 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
ret = _ecore_list_goto_first(list);
- ECORE_WRITE_UNLOCK(list);
-
return ret;
}
@@ -879,9 +807,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_goto_last(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -907,9 +833,7 @@
{
void *ret;
- ECORE_READ_LOCK(list);
ret = _ecore_list_current(list);
- ECORE_READ_UNLOCK(list);
return ret;
}
@@ -922,9 +846,7 @@
if (!list->current)
return NULL;
- ECORE_READ_LOCK(list->current);
ret = list->current->data;
- ECORE_READ_UNLOCK(list->current);
return ret;
}
@@ -941,9 +863,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
data = _ecore_list_next(list);
- ECORE_WRITE_UNLOCK(list);
return data;
}
@@ -958,17 +878,13 @@
if (!list->current)
return NULL;
- ECORE_READ_LOCK(list->current);
ret = list->current;
next = list->current->next;
- ECORE_READ_UNLOCK(list->current);
list->current = next;
list->index++;
- ECORE_READ_LOCK(ret);
data = ret->data;
- ECORE_READ_UNLOCK(ret);
return data;
}
@@ -984,13 +900,9 @@
{
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
while (!ecore_list_is_empty(list))
_ecore_list_remove_first(list);
- ECORE_WRITE_UNLOCK(list);
-
return TRUE;
}
@@ -1007,9 +919,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_READ_LOCK(list);
ret = _ecore_list_for_each(list, function);
- ECORE_READ_UNLOCK(list);
return ret;
}
@@ -1038,8 +948,6 @@
node->next = NULL;
node->data = NULL;
- ECORE_INIT_LOCKS(node);
-
return TRUE;
}
@@ -1080,14 +988,9 @@
{
CHECK_PARAM_POINTER_RETURN("node", node, FALSE);
- ECORE_WRITE_LOCK(node);
-
if (free_func && node->data)
free_func(node->data);
- ECORE_WRITE_UNLOCK(node);
- ECORE_DESTROY_LOCKS(node);
-
FREE(node);
return TRUE;
@@ -1133,8 +1036,6 @@
memset(list, 0, sizeof(Ecore_DList));
- ECORE_INIT_LOCKS(list);
-
return TRUE;
}
@@ -1148,17 +1049,12 @@
void *data;
CHECK_PARAM_POINTER("list", list);
- ECORE_WRITE_LOCK(list);
-
while (list->first) {
data = _ecore_dlist_remove_first(list);
if (list->free_func)
list->free_func(data);
}
- ECORE_WRITE_UNLOCK(list);
- ECORE_DESTROY_LOCKS(list);
-
FREE(list);
}
@@ -1222,8 +1118,6 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
node = ecore_dlist_node_new();
ECORE_LIST_NODE(node)->data = data;
@@ -1233,8 +1127,6 @@
node->previous = prev;
}
- ECORE_WRITE_UNLOCK(list);
-
return ret;
}
@@ -1253,8 +1145,6 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
node = ecore_dlist_node_new();
ECORE_LIST_NODE(node)->data = data;
@@ -1263,8 +1153,6 @@
if (ret && prev)
prev->previous = node;
- ECORE_WRITE_UNLOCK(list);
-
return ret;
}
@@ -1283,8 +1171,6 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
prev = ECORE_DLIST_NODE(ECORE_LIST(list)->current);
if (!prev)
prev = ECORE_DLIST_NODE(ECORE_LIST(list)->last);
@@ -1297,7 +1183,6 @@
ret = _ecore_list_insert(list, ECORE_LIST_NODE(node));
if (!ret) {
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1307,8 +1192,6 @@
if (prev)
node->previous = prev;
- ECORE_WRITE_UNLOCK(list);
-
return ret;
}
@@ -1332,8 +1215,6 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
-
if (l2->current) {
node = ECORE_DLIST_NODE(list->current->next);
if (node)
@@ -1341,8 +1222,6 @@
}
ret = _ecore_list_remove_0(list);
- ECORE_WRITE_UNLOCK(list);
-
return ret;
}
@@ -1358,9 +1237,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_dlist_remove_first(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1405,9 +1282,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_remove_last(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1424,9 +1299,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_dlist_goto_index(list, index);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1477,9 +1350,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_goto(ECORE_LIST(list), data);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1496,9 +1367,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_goto_first(list);
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1514,9 +1383,7 @@
CHECK_PARAM_POINTER_RETURN("list", list, FALSE);
- ECORE_WRITE_LOCK(list);
ret = _ecore_list_goto_last(ECORE_LIST(list));
- ECORE_WRITE_UNLOCK(list);
return ret;
}
@@ -1530,9 +1397,7 @@
{
void *ret;
- ECORE_READ_LOCK(list);
ret = _ecore_list_current(ECORE_LIST(list));
- ECORE_READ_UNLOCK(list);
return ret;
}
@@ -1546,9 +1411,7 @@
{
void *data;
- ECORE_WRITE_LOCK(list);
data = _ecore_list_next(list);
- ECORE_WRITE_UNLOCK(list);
return data;
}
@@ -1562,9 +1425,7 @@
{
void *data;
- ECORE_WRITE_LOCK(list);
data = _ecore_dlist_previous(list);
- ECORE_WRITE_UNLOCK(list);
return data;
}
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs