Thu, 15 Oct 2015 12:46:09 +0200
use ucx_map_clear in dav_propfind
libidav/webdav.c | file | annotate | diff | comparison | revisions | |
ucx/map.c | file | annotate | diff | comparison | revisions |
--- a/libidav/webdav.c Thu Oct 15 12:37:01 2015 +0200 +++ b/libidav/webdav.c Thu Oct 15 12:46:09 2015 +0200 @@ -316,21 +316,7 @@ int dav_propfind(DavSession *sn, DavResource *root, UcxBuffer *rqbuf) { // clean resource properties DavResourceData *data = root->data; - size_t pcount = data->properties->count; - if(pcount > 0) { - UcxKey key; - void *value; - UcxMapIterator i = ucx_map_iterator(data->properties); - UcxKey mkeys[pcount]; - int index = 0; - UCX_MAP_FOREACH(key, value, i) { - mkeys[index] = key; - index++; - } - for(int j=0;j<index;j++) { - ucx_map_remove(data->properties, mkeys[j]); - } - } + ucx_map_clear(data->properties); CURL *handle = sn->handle; util_set_url(sn, dav_resource_get_href(root));
--- a/ucx/map.c Thu Oct 15 12:37:01 2015 +0200 +++ b/ucx/map.c Thu Oct 15 12:46:09 2015 +0200 @@ -83,6 +83,9 @@ } void ucx_map_clear(UcxMap *map) { + if (map->count == 0) { + return; // nothing to do + } ucx_map_free_elmlist_contents(map); memset(map->map, 0, map->size*sizeof(UcxMapElement*)); map->count = 0;