From 331596e83ca78f3c35fa5512153fcf24537b1e84 Mon Sep 17 00:00:00 2001 From: Lee Thomason Date: Thu, 11 Sep 2014 14:56:43 -0700 Subject: [PATCH] clean up the scope and names of the error code. --- tinyxml2.cpp | 39 +++++++++++++++++++++++++++++++++------ tinyxml2.h | 36 ++++++++---------------------------- xmltest.cpp | 2 +- 3 files changed, 42 insertions(+), 35 deletions(-) diff --git a/tinyxml2.cpp b/tinyxml2.cpp index 4956a05..53d78bd 100755 --- a/tinyxml2.cpp +++ b/tinyxml2.cpp @@ -476,10 +476,6 @@ bool XMLUtil::ToDouble( const char* str, double* value ) return false; } -const char* XMLUtil::ToErrorName( const XMLError errorID ) -{ - return ErrorNames[errorID]; -} char* XMLDocument::Identify( char* p, XMLNode** node ) { @@ -1581,6 +1577,32 @@ bool XMLElement::Accept( XMLVisitor* visitor ) const // --------- XMLDocument ----------- // + +// Warning: List must match 'enum XMLError' +const char* XMLDocument::_errorNames[XML_ERROR_COUNT] = { + "XML_SUCCESS", + "XML_NO_ATTRIBUTE", + "XML_WRONG_ATTRIBUTE_TYPE", + "XML_ERROR_FILE_NOT_FOUND", + "XML_ERROR_FILE_COULD_NOT_BE_OPENED", + "XML_ERROR_FILE_READ_ERROR", + "XML_ERROR_ELEMENT_MISMATCH", + "XML_ERROR_PARSING_ELEMENT", + "XML_ERROR_PARSING_ATTRIBUTE", + "XML_ERROR_IDENTIFYING_TAG", + "XML_ERROR_PARSING_TEXT", + "XML_ERROR_PARSING_CDATA", + "XML_ERROR_PARSING_COMMENT", + "XML_ERROR_PARSING_DECLARATION", + "XML_ERROR_PARSING_UNKNOWN", + "XML_ERROR_EMPTY_DOCUMENT", + "XML_ERROR_MISMATCHED_ELEMENT", + "XML_ERROR_PARSING", + "XML_CAN_NOT_CONVERT_TEXT", + "XML_NO_TEXT_NODE" +}; + + XMLDocument::XMLDocument( bool processEntities, Whitespace whitespace ) : XMLNode( 0 ), _writeBOM( false ), @@ -1816,6 +1838,11 @@ void XMLDocument::SetError( XMLError error, const char* str1, const char* str2 ) _errorStr2 = str2; } +const char* XMLDocument::ErrorName() const +{ + TIXMLASSERT(_errorID >= 0 && _errorID < XML_ERROR_COUNT ); + return _errorNames[_errorID]; +} void XMLDocument::PrintError() const { @@ -1831,8 +1858,8 @@ void XMLDocument::PrintError() const TIXML_SNPRINTF( buf2, LEN, "%s", _errorStr2 ); } - printf( "XMLDocument error id=%d str1=%s str2=%s\n", - _errorID, buf1, buf2 ); + printf( "XMLDocument error id=%d '%s' str1=%s str2=%s\n", + _errorID, ErrorName(), buf1, buf2 ); } } diff --git a/tinyxml2.h b/tinyxml2.h index 0910e0e..608e41f 100755 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -480,6 +480,7 @@ public: } }; +// WARNING: must match XMLErrorNames[] enum XMLError { XML_SUCCESS = 0, XML_NO_ERROR = 0, @@ -501,34 +502,12 @@ enum XMLError { XML_ERROR_MISMATCHED_ELEMENT, XML_ERROR_PARSING, XML_CAN_NOT_CONVERT_TEXT, - XML_NO_TEXT_NODE + XML_NO_TEXT_NODE, + + XML_ERROR_COUNT }; - -static const char *ErrorNames[] = { - "XML_SUCCESS", - "XML_NO_ATTRIBUTE", - "XML_WRONG_ATTRIBUTE_TYPE", - "XML_ERROR_FILE_NOT_FOUND", - "XML_ERROR_FILE_COULD_NOT_BE_OPENED", - "XML_ERROR_FILE_READ_ERROR", - "XML_ERROR_ELEMENT_MISMATCH", - "XML_ERROR_PARSING_ELEMENT", - "XML_ERROR_PARSING_ATTRIBUTE", - "XML_ERROR_IDENTIFYING_TAG", - "XML_ERROR_PARSING_TEXT", - "XML_ERROR_PARSING_CDATA", - "XML_ERROR_PARSING_COMMENT", - "XML_ERROR_PARSING_DECLARATION", - "XML_ERROR_PARSING_UNKNOWN", - "XML_ERROR_EMPTY_DOCUMENT", - "XML_ERROR_MISMATCHED_ELEMENT", - "XML_ERROR_PARSING", - "XML_CAN_NOT_CONVERT_TEXT", - "XML_NO_TEXT_NODE" -}; - /* Utility functionality. */ @@ -605,9 +584,6 @@ public: static bool ToBool( const char* str, bool* value ); static bool ToFloat( const char* str, float* value ); static bool ToDouble( const char* str, double* value ); - - // converts XMLError to strings - static const char* ToErrorName( const XMLError errorID ); }; @@ -1687,6 +1663,8 @@ public: XMLError ErrorID() const { return _errorID; } + const char* ErrorName() const; + /// Return a possibly helpful diagnostic location or string. const char* GetErrorStr1() const { return _errorStr1; @@ -1727,6 +1705,8 @@ private: MemPoolT< sizeof(XMLAttribute) > _attributePool; MemPoolT< sizeof(XMLText) > _textPool; MemPoolT< sizeof(XMLComment) > _commentPool; + + static const char* _errorNames[XML_ERROR_COUNT]; }; diff --git a/xmltest.cpp b/xmltest.cpp index 477f271..3e41e13 100644 --- a/xmltest.cpp +++ b/xmltest.cpp @@ -1222,7 +1222,7 @@ int main( int argc, const char ** argv ) XMLDocument doc; XMLError error = doc.LoadFile( "resources/empty.xml" ); XMLTest( "Loading an empty file", XML_ERROR_EMPTY_DOCUMENT, error ); - XMLTest( "Loading an empty file and ErrorName as string", "XML_ERROR_EMPTY_DOCUMENT", XMLUtil::ToErrorName(error) ); + XMLTest( "Loading an empty file and ErrorName as string", "XML_ERROR_EMPTY_DOCUMENT", doc.ErrorName() ); } {