aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-list-iterator.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-09-21 15:18:26 +0800
committerChris Lahey <clahey@src.gnome.org>2000-09-21 15:18:26 +0800
commit1771bc9932db7343e284d38507b7d639feafd750 (patch)
treeb6fc6ebb3ce3b9236489b559d147b2186228953d /e-util/e-list-iterator.c
parent9e6e29ee3ce7bb0f757d17fa02f44edc99ca592b (diff)
downloadgsoc2013-evolution-1771bc9932db7343e284d38507b7d639feafd750.tar.gz
gsoc2013-evolution-1771bc9932db7343e284d38507b7d639feafd750.tar.zst
gsoc2013-evolution-1771bc9932db7343e284d38507b7d639feafd750.zip
Made e_list a bit more reentrant. If a iterator gets its data pulled out
2000-09-18 Christopher James Lahey <clahey@helixcode.com> * e-list-iterator.c, e-list.c, e-list.h: Made e_list a bit more reentrant. If a iterator gets its data pulled out from under it while in a loop, it goes back one so that loops will be able to continue. svn path=/trunk/; revision=5533
Diffstat (limited to 'e-util/e-list-iterator.c')
-rw-r--r--e-util/e-list-iterator.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/e-util/e-list-iterator.c b/e-util/e-list-iterator.c
index 51480447b4..360e37ca40 100644
--- a/e-util/e-list-iterator.c
+++ b/e-util/e-list-iterator.c
@@ -208,12 +208,7 @@ e_list_iterator_delete (EIterator *_iterator)
{
EListIterator *iterator = E_LIST_ITERATOR(_iterator);
if (iterator->iterator) {
- GList *temp = iterator->iterator->next;
- if (iterator->list->free)
- iterator->list->free(iterator->iterator->data, iterator->list->closure);
- iterator->list->list = g_list_remove_link(iterator->list->list, iterator->iterator);
- iterator->iterator = temp;
- e_list_invalidate_iterators(iterator->list, E_ITERATOR(iterator));
+ e_list_remove_link (iterator->list, iterator->iterator);
}
}