dav/tags.c

branch
ucx-3.1
changeset 816
839fefbdedc7
parent 785
645f7e802873
--- a/dav/tags.c	Sat Apr 20 13:01:58 2024 +0200
+++ b/dav/tags.c	Thu May 23 22:35:45 2024 +0200
@@ -73,7 +73,7 @@
 
 CxList* parse_text_taglist(const char *buf, size_t length) {
     CxList *tags = cxLinkedListCreateSimple(CX_STORE_POINTERS);
-    tags->simple_destructor = (cx_destructor_func)free_dav_tag;
+    cxDefineDestructor(tags, free_dav_tag);
     
     int line_start = 0;
     for(int i=0;i<length;i++) {
@@ -114,7 +114,7 @@
         return cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 8);
     }
     
-    CxMap *map = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, tags->size + 8);
+    CxMap *map = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, cxListSize(tags) + 8);
     CxIterator iter = cxListIterator(tags);
     cx_foreach(DavTag*, t, iter) {
         cxMapPut(map, cx_hash_key_str(t->name), t);
@@ -142,7 +142,7 @@
 
 CxList* parse_csv_taglist(const char *buf, size_t length) {
     CxList *taglist = cxLinkedListCreateSimple(CX_STORE_POINTERS);
-    taglist->simple_destructor = (cx_destructor_func)free_dav_tag;
+    cxDefineDestructor(taglist, free_dav_tag);
     
     cxstring str = cx_strn(buf, length);
     CxStrtokCtx tags = cx_strtok(str, CX_STR(","), INT_MAX);
@@ -185,16 +185,10 @@
             if(value) {
                 if(!strcmp(c->namespace, DAV_PROPS_NS)) {
                     if(!strcmp(c->name, "name")) {
-                        char *value = dav_xml_getstring(c->children);
-                        if(value) {
-                            name = value;
-                        }
+                        name = value;
                     }
                     if(!strcmp(c->name, "color")) {
-                        char *value = dav_xml_getstring(c->children);
-                        if(value) {
-                            color = value;
-                        }
+                        color = value;
                     }
                 }
             }
@@ -213,7 +207,7 @@
 
 CxList* parse_dav_xml_taglist(DavXmlNode *taglistnode) {
     CxList *tags = cxLinkedListCreateSimple(CX_STORE_POINTERS);
-    tags->simple_destructor = (cx_destructor_func)free_dav_tag;
+    cxDefineDestructor(tags, free_dav_tag);
     
     DavXmlNode *node = taglistnode;
     while(node) {
@@ -403,7 +397,7 @@
         i++;
     }
     
-    if(i != map1->size) {
+    if(i != cxMapSize(map1)) {
         equal = 0;
     }
     cxMapDestroy(map1);
@@ -425,7 +419,7 @@
     CxMap *tag_map = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 32);
     // merged taglist
     CxList *new_tags = cxLinkedListCreateSimple(CX_STORE_POINTERS);
-    new_tags->simple_destructor = (cx_destructor_func)free_dav_tag;
+    cxDefineDestructor(new_tags, free_dav_tag);
 
     // add all local tags
     if(tags1) {

mercurial