diff -r bbadf84cfc2d -r 4d7a2238c5ac dav/sync.c --- a/dav/sync.c Sun May 21 11:52:06 2023 +0200 +++ b/dav/sync.c Sun May 21 16:34:58 2023 +0200 @@ -36,8 +36,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -115,45 +117,12 @@ - -static bool nulliter_valid(void const *d) { - return false; -} - -static void * nulliter_current(void const *d) { - return NULL; -} - -void * nulliter_current_impl(void const *d) { - return NULL; -} - -void nulliter_next(void *d) { - // noop -} - -bool nulliter_flag_removal(void *d) { - return false; -} - - -static CxIterator nullIterator(void) { - CxIterator iter; - memset(&iter, 0, sizeof(CxIterator)); - iter.base.valid = nulliter_valid; - iter.base.current = nulliter_current; - iter.base.current_impl = nulliter_current_impl; - iter.base.next = nulliter_next; - iter.base.flag_removal = nulliter_flag_removal; - return iter; -} - static CxIterator mapIteratorValues(CxMap *map) { - return map ? cxMapIteratorValues(map) : nullIterator(); + return cxMapIteratorValues(map ? map : cxEmptyMap); } static CxIterator listIterator(CxList *list) { - return list ? cxListIterator(list) : nullIterator(); + return cxListIterator(list ? list : cxEmptyList); } typedef void*(*clonefunc)(void *elm, void *userdata);