From 65ac3dfab18052a8152ef0954c97fa5b0bf245ae Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Wed, 15 Jul 2026 21:50:50 +0200 Subject: prefixe die Expat-C-API mit '::' --- src/xml.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/xml.cpp b/src/xml.cpp index 451ee18..bb7ebd4 100644 --- a/src/xml.cpp +++ b/src/xml.cpp @@ -1,8 +1,8 @@ // Standard C++ #include #include -#include #include +#include // Project #include "xml.hpp" @@ -15,15 +15,19 @@ using namespace std; void XML::parse(istream& ins) { - unique_ptr parser(XML_ParserCreate(nullptr), XML_ParserFree); + unique_ptr parser(::XML_ParserCreate(nullptr), ::XML_ParserFree); + + if ( !parser ) { + throw bad_alloc(); + } // setup expat - XML_SetUserData(parser.get(), this); - XML_SetElementHandler(parser.get(), tag_start, tag_end); - XML_SetCdataSectionHandler(parser.get(), cdata_start, cdata_end); - XML_SetCharacterDataHandler(parser.get(), data); + ::XML_SetUserData(parser.get(), this); + ::XML_SetElementHandler(parser.get(), tag_start, tag_end); + ::XML_SetCdataSectionHandler(parser.get(), cdata_start, cdata_end); + ::XML_SetCharacterDataHandler(parser.get(), data); - static const auto buffer_size = 2048; + constexpr auto buffer_size = 2048; array buffer{}; @@ -31,11 +35,11 @@ XML::parse(istream& ins) ins.read(buffer.data(), buffer_size); done = ins.gcount() < buffer_size; - if ( XML_Parse(parser.get(), buffer.data(), static_cast(ins.gcount()), static_cast(done)) != XML_STATUS_OK ) { + if ( ::XML_Parse(parser.get(), buffer.data(), static_cast(ins.gcount()), static_cast(done)) != XML_STATUS_OK ) { stringstream msg; - msg << XML_ErrorString(XML_GetErrorCode(parser.get())); - msg << " in line " << XML_GetCurrentLineNumber(parser.get()); + msg << ::XML_ErrorString(XML_GetErrorCode(parser.get())); + msg << " in line " << ::XML_GetCurrentLineNumber(parser.get()); throw runtime_error(msg.str()); } @@ -75,5 +79,5 @@ XML::cdata_end(void* self) void XML::data(void* self, const char* dat, int len) { - static_cast(self)->handle_character_data({ dat, dat + len }); + static_cast(self)->handle_character_data({ dat, static_cast(len) }); } -- cgit v1.3