1
0
Эх сурвалжийг харах

clean up the scope and names of the error code.

Lee Thomason 11 жил өмнө
parent
commit
331596e83c
3 өөрчлөгдсөн 42 нэмэгдсэн , 35 устгасан
  1. 33 6
      tinyxml2.cpp
  2. 8 28
      tinyxml2.h
  3. 1 1
      xmltest.cpp

+ 33 - 6
tinyxml2.cpp

@@ -476,10 +476,6 @@ bool XMLUtil::ToDouble( const char* str, double* value )
     return false;
     return false;
 }
 }
 
 
-const char* XMLUtil::ToErrorName( const XMLError errorID )
-{
-    return ErrorNames[errorID];
-}
 
 
 char* XMLDocument::Identify( char* p, XMLNode** node )
 char* XMLDocument::Identify( char* p, XMLNode** node )
 {
 {
@@ -1581,6 +1577,32 @@ bool XMLElement::Accept( XMLVisitor* visitor ) const
 
 
 
 
 // --------- XMLDocument ----------- //
 // --------- 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 ) :
 XMLDocument::XMLDocument( bool processEntities, Whitespace whitespace ) :
     XMLNode( 0 ),
     XMLNode( 0 ),
     _writeBOM( false ),
     _writeBOM( false ),
@@ -1816,6 +1838,11 @@ void XMLDocument::SetError( XMLError error, const char* str1, const char* str2 )
     _errorStr2 = str2;
     _errorStr2 = str2;
 }
 }
 
 
+const char* XMLDocument::ErrorName() const
+{
+	TIXMLASSERT(_errorID >= 0 && _errorID < XML_ERROR_COUNT );
+	return _errorNames[_errorID];
+}
 
 
 void XMLDocument::PrintError() const
 void XMLDocument::PrintError() const
 {
 {
@@ -1831,8 +1858,8 @@ void XMLDocument::PrintError() const
             TIXML_SNPRINTF( buf2, LEN, "%s", _errorStr2 );
             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 );
     }
     }
 }
 }
 
 

+ 8 - 28
tinyxml2.h

@@ -480,6 +480,7 @@ public:
     }
     }
 };
 };
 
 
+// WARNING: must match XMLErrorNames[]
 enum XMLError {
 enum XMLError {
     XML_SUCCESS = 0,
     XML_SUCCESS = 0,
     XML_NO_ERROR = 0,
     XML_NO_ERROR = 0,
@@ -501,34 +502,12 @@ enum XMLError {
     XML_ERROR_MISMATCHED_ELEMENT,
     XML_ERROR_MISMATCHED_ELEMENT,
     XML_ERROR_PARSING,
     XML_ERROR_PARSING,
     XML_CAN_NOT_CONVERT_TEXT,
     XML_CAN_NOT_CONVERT_TEXT,
-    XML_NO_TEXT_NODE
-};
-
+    XML_NO_TEXT_NODE,
 
 
-
-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"
+	XML_ERROR_COUNT
 };
 };
 
 
+
 /*
 /*
 	Utility functionality.
 	Utility functionality.
 */
 */
@@ -605,9 +584,6 @@ public:
     static bool	ToBool( const char* str, bool* value );
     static bool	ToBool( const char* str, bool* value );
     static bool	ToFloat( const char* str, float* value );
     static bool	ToFloat( const char* str, float* value );
     static bool ToDouble( const char* str, double* 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 {
     XMLError  ErrorID() const {
         return _errorID;
         return _errorID;
     }
     }
+	const char* ErrorName() const;
+
     /// Return a possibly helpful diagnostic location or string.
     /// Return a possibly helpful diagnostic location or string.
     const char* GetErrorStr1() const {
     const char* GetErrorStr1() const {
         return _errorStr1;
         return _errorStr1;
@@ -1727,6 +1705,8 @@ private:
     MemPoolT< sizeof(XMLAttribute) > _attributePool;
     MemPoolT< sizeof(XMLAttribute) > _attributePool;
     MemPoolT< sizeof(XMLText) >		 _textPool;
     MemPoolT< sizeof(XMLText) >		 _textPool;
     MemPoolT< sizeof(XMLComment) >	 _commentPool;
     MemPoolT< sizeof(XMLComment) >	 _commentPool;
+
+	static const char* _errorNames[XML_ERROR_COUNT];
 };
 };
 
 
 
 

+ 1 - 1
xmltest.cpp

@@ -1222,7 +1222,7 @@ int main( int argc, const char ** argv )
 		XMLDocument doc;
 		XMLDocument doc;
 		XMLError error = doc.LoadFile( "resources/empty.xml" );
 		XMLError error = doc.LoadFile( "resources/empty.xml" );
 		XMLTest( "Loading an empty file", XML_ERROR_EMPTY_DOCUMENT, error );
 		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() );
 	}
 	}
 
 
 	{
 	{