More checks inside UTF conversion
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 90b9e79..60f38ed 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -351,6 +351,7 @@
 

     if ( *(p+1) == '#' && *(p+2) ) {

         unsigned long ucs = 0;

+        TIXMLASSERT( sizeof( ucs ) >= 4 );

         ptrdiff_t delta = 0;

         unsigned mult = 1;

 

@@ -383,6 +384,7 @@
                 else {

                     return 0;

                 }

+                TIXMLASSERT( mult <= UINT_MAX / 16 );

                 mult *= 16;

                 --q;

             }

@@ -410,6 +412,7 @@
                 else {

                     return 0;

                 }

+                TIXMLASSERT( mult <= UINT_MAX / 10 );

                 mult *= 10;

                 --q;

             }

@@ -578,6 +581,7 @@
 

 bool XMLDocument::Accept( XMLVisitor* visitor ) const

 {

+    TIXMLASSERT( visitor );

     if ( visitor->VisitEnter( *this ) ) {

         for ( const XMLNode* node=FirstChild(); node; node=node->NextSibling() ) {

             if ( !node->Accept( visitor ) ) {