diff options
Diffstat (limited to 'Swiften/Parser/ExpatParser.cpp')
| -rw-r--r-- | Swiften/Parser/ExpatParser.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/Swiften/Parser/ExpatParser.cpp b/Swiften/Parser/ExpatParser.cpp index 8222ae0..8b7bf82 100644 --- a/Swiften/Parser/ExpatParser.cpp +++ b/Swiften/Parser/ExpatParser.cpp @@ -9,10 +9,13 @@  #include <iostream>  #include <string>  #include <expat.h> +#include <boost/numeric/conversion/cast.hpp>  #include <Swiften/Base/String.h>  #include <Swiften/Parser/XMLParserClient.h> +#pragma clang diagnostic ignored "-Wdisabled-macro-expansion" +  namespace Swift {  static const char NAMESPACE_SEPARATOR = '\x01'; @@ -52,7 +55,8 @@ static void handleEndElement(void* parser, const XML_Char* name) {  }  static void handleCharacterData(void* parser, const XML_Char* data, int len) { -	static_cast<XMLParser*>(parser)->getClient()->handleCharacterData(std::string(data, len)); +	assert(len >= 0); +	static_cast<XMLParser*>(parser)->getClient()->handleCharacterData(std::string(data, static_cast<size_t>(len)));  }  static void handleXMLDeclaration(void*, const XML_Char*, const XML_Char*, int) { @@ -77,7 +81,7 @@ ExpatParser::~ExpatParser() {  }  bool ExpatParser::parse(const std::string& data) { -	bool success = XML_Parse(p->parser_, data.c_str(), data.size(), false) == XML_STATUS_OK; +	bool success = XML_Parse(p->parser_, data.c_str(), boost::numeric_cast<int>(data.size()), false) == XML_STATUS_OK;  	/*if (!success) {  		std::cout << "ERROR: " << XML_ErrorString(XML_GetErrorCode(p->parser_)) << " while parsing " << data << std::endl;  	}*/ | 
 Swift
 Swift