From be54c34ecb589eb2082aba80f20699450dda86f3 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Thu, 7 Mar 2024 00:45:34 +0900 Subject: [PATCH] Remove unneeded XML macros (#2427) --- src/mpu_util.cpp | 7 +++---- src/s3fs.cpp | 14 ++++++-------- src/s3fs.h | 21 --------------------- src/s3fs_xml.cpp | 9 ++++----- 4 files changed, 13 insertions(+), 38 deletions(-) diff --git a/src/mpu_util.cpp b/src/mpu_util.cpp index 1421905..419f513 100644 --- a/src/mpu_util.cpp +++ b/src/mpu_util.cpp @@ -115,15 +115,15 @@ int s3fs_utility_processing(time_t abort_time) // parse result(incomplete multipart upload information) S3FS_PRN_DBG("response body = {\n%s\n}", body.c_str()); - xmlDocPtr doc; - if(nullptr == (doc = xmlReadMemory(body.c_str(), static_cast(body.size()), "", nullptr, 0))){ + std::unique_ptr doc(xmlReadMemory(body.c_str(), static_cast(body.size()), "", nullptr, 0), xmlFreeDoc); + if(nullptr == doc){ S3FS_PRN_DBG("xmlReadMemory exited with error."); result = EXIT_FAILURE; }else{ // make incomplete uploads list incomp_mpu_list_t list; - if(!get_incomp_mpu_list(doc, list)){ + if(!get_incomp_mpu_list(doc.get(), list)){ S3FS_PRN_DBG("get_incomp_mpu_list exited with error."); result = EXIT_FAILURE; @@ -139,7 +139,6 @@ int s3fs_utility_processing(time_t abort_time) } } } - S3FS_XMLFREEDOC(doc); } } diff --git a/src/s3fs.cpp b/src/s3fs.cpp index fc8a659..a082251 100644 --- a/src/s3fs.cpp +++ b/src/s3fs.cpp @@ -3459,7 +3459,6 @@ static int list_bucket(const char* path, S3ObjList& head, const char* delimiter, std::string next_marker; bool truncated = true; S3fsCurl s3fscurl; - xmlDocPtr doc; S3FS_PRN_INFO1("[path=%s]", path); @@ -3519,20 +3518,20 @@ static int list_bucket(const char* path, S3ObjList& head, const char* delimiter, std::string encbody = get_encoded_cr_code(body->c_str()); // xmlDocPtr - if(nullptr == (doc = xmlReadMemory(encbody.c_str(), static_cast(encbody.size()), "", nullptr, 0))){ + std::unique_ptr doc(xmlReadMemory(encbody.c_str(), static_cast(encbody.size()), "", nullptr, 0), xmlFreeDoc); + if(nullptr == doc){ S3FS_PRN_ERR("xmlReadMemory returns with error."); return -EIO; } - if(0 != append_objects_from_xml(path, doc, head)){ + if(0 != append_objects_from_xml(path, doc.get(), head)){ S3FS_PRN_ERR("append_objects_from_xml returns with error."); - xmlFreeDoc(doc); return -EIO; } - if(true == (truncated = is_truncated(doc))){ - auto tmpch = get_next_continuation_token(doc); + if(true == (truncated = is_truncated(doc.get()))){ + auto tmpch = get_next_continuation_token(doc.get()); if(nullptr != tmpch){ next_continuation_token = reinterpret_cast(tmpch.get()); - }else if(nullptr != (tmpch = get_next_marker(doc))){ + }else if(nullptr != (tmpch = get_next_marker(doc.get()))){ next_marker = reinterpret_cast(tmpch.get()); } @@ -3553,7 +3552,6 @@ static int list_bucket(const char* path, S3ObjList& head, const char* delimiter, } } } - S3FS_XMLFREEDOC(doc); // reset(initialize) curl object s3fscurl.DestroyCurlHandle(); diff --git a/src/s3fs.h b/src/s3fs.h index 29c84f4..83f54a2 100644 --- a/src/s3fs.h +++ b/src/s3fs.h @@ -59,27 +59,6 @@ #define S3FS_MALLOCTRIM(pad) #endif // S3FS_MALLOC_TRIM -#define S3FS_XMLFREEDOC(doc) \ - do{ \ - xmlFreeDoc(doc); \ - S3FS_MALLOCTRIM(0); \ - }while(0) -#define S3FS_XMLFREE(ptr) \ - do{ \ - xmlFree(ptr); \ - S3FS_MALLOCTRIM(0); \ - }while(0) -#define S3FS_XMLXPATHFREECONTEXT(ctx) \ - do{ \ - xmlXPathFreeContext(ctx); \ - S3FS_MALLOCTRIM(0); \ - }while(0) -#define S3FS_XMLXPATHFREEOBJECT(obj) \ - do{ \ - xmlXPathFreeObject(obj); \ - S3FS_MALLOCTRIM(0); \ - }while(0) - #endif // S3FS_S3FS_H_ /* diff --git a/src/s3fs_xml.cpp b/src/s3fs_xml.cpp index 1b9507a..92617aa 100644 --- a/src/s3fs_xml.cpp +++ b/src/s3fs_xml.cpp @@ -65,15 +65,14 @@ static bool GetXmlNsUrl(xmlDocPtr doc, std::string& nsurl) strNs = ""; xmlNodePtr pRootNode = xmlDocGetRootElement(doc); if(pRootNode){ - xmlNsPtr* nslist = xmlGetNsList(doc, pRootNode); + std::unique_ptr nslist(xmlGetNsList(doc, pRootNode), xmlFree); if(nslist){ - if(nslist[0] && nslist[0]->href){ - int len = xmlStrlen(nslist[0]->href); + if(*nslist && (*nslist)[0].href){ + int len = xmlStrlen((*nslist)[0].href); if(0 < len){ - strNs = std::string(reinterpret_cast(nslist[0]->href), len); + strNs = std::string(reinterpret_cast((*nslist)[0].href), len); } } - S3FS_XMLFREE(nslist); } } }