Manipulating NULL iterator should be concidered as a defined behaviour as it

give the possibility to write small code like :

it = eina_hash_iterator_tuple_new(hash);
eina_iterator_foreach(it, do_something_cb, NULL);
eina_iterator_free(it);

If hash is empty, but valid it will return a NULL iterator for this
example.


SVN revision: 38104
This commit is contained in:
Cedric BAIL 2008-12-11 13:54:59 +00:00
parent b8d721ac05
commit db11d16b7f
1 changed files with 3 additions and 3 deletions

View File

@ -128,8 +128,8 @@ eina_iterator_container_get(Eina_Iterator *iterator)
EAPI Eina_Bool
eina_iterator_next(Eina_Iterator *iterator, void **data)
{
EINA_MAGIC_CHECK_ITERATOR(iterator);
if (!iterator) return EINA_FALSE;
EINA_MAGIC_CHECK_ITERATOR(iterator);
return iterator->next(iterator, data);
}
@ -153,10 +153,10 @@ eina_iterator_foreach(Eina_Iterator *iterator,
void *container;
void *data;
EINA_MAGIC_CHECK_ITERATOR(iterator);
if (!iterator) return ;
EINA_MAGIC_CHECK_ITERATOR(iterator);
container = iterator->get_container(iterator);
while (iterator->next(iterator, &data) == EINA_TRUE) {
if (cb(container, data, (void*) fdata) != EINA_TRUE) return ;