use ucx_map_clear in dav_propfind

Thu, 15 Oct 2015 12:46:09 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 15 Oct 2015 12:46:09 +0200
changeset 168
6db9c5d7d7ff
parent 167
cecfbb5f8618
child 169
08adb4f87160

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;

mercurial