Merge pull request #353 from Dmitry-Me/unselessConst

Useless const
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 6fbbf16..356a598 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -30,6 +30,72 @@
 #   include <cstddef>

 #endif

 

+#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE)

+	// Microsoft visual studio, version 2005 and higher. Not WinCE.

+	/*int _snprintf_s(

+	   char *buffer,

+	   size_t sizeOfBuffer,

+	   size_t count,

+	   const char *format [,

+		  argument] ...

+	);*/

+	inline int TIXML_SNPRINTF( char* buffer, size_t size, const char* format, ... )

+	{

+		va_list va;

+		va_start( va, format );

+		int result = vsnprintf_s( buffer, size, _TRUNCATE, format, va );

+		va_end( va );

+		return result;

+	}

+

+	inline int TIXML_VSNPRINTF( char* buffer, size_t size, const char* format, va_list va )

+	{

+		int result = vsnprintf_s( buffer, size, _TRUNCATE, format, va );

+		return result;

+	}

+

+	#define TIXML_VSCPRINTF	_vscprintf

+	#define TIXML_SSCANF	sscanf_s

+#elif defined _MSC_VER

+	// Microsoft Visual Studio 2003 and earlier or WinCE

+	#define TIXML_SNPRINTF	_snprintf

+	#define TIXML_VSNPRINTF _vsnprintf

+	#define TIXML_SSCANF	sscanf

+	#if (_MSC_VER < 1400 ) && (!defined WINCE)

+		// Microsoft Visual Studio 2003 and not WinCE.

+		#define TIXML_VSCPRINTF   _vscprintf // VS2003's C runtime has this, but VC6 C runtime or WinCE SDK doesn't have.

+	#else

+		// Microsoft Visual Studio 2003 and earlier or WinCE.

+		inline int TIXML_VSCPRINTF( const char* format, va_list va )

+		{

+			int len = 512;

+			for (;;) {

+				len = len*2;

+				char* str = new char[len]();

+				const int required = _vsnprintf(str, len, format, va);

+				delete[] str;

+				if ( required != -1 ) {

+					len = required;

+					break;

+				}

+			}

+			return len;

+		}

+	#endif

+#else

+	// GCC version 3 and higher

+	//#warning( "Using sn* functions." )

+	#define TIXML_SNPRINTF	snprintf

+	#define TIXML_VSNPRINTF	vsnprintf

+	inline int TIXML_VSCPRINTF( const char* format, va_list va )

+	{

+		int len = vsnprintf( 0, 0, format, va );

+		return len;

+	}

+	#define TIXML_SSCANF   sscanf

+#endif

+

+

 static const char LINE_FEED				= (char)0x0a;			// all line endings are normalized to LF

 static const char LF = LINE_FEED;

 static const char CARRIAGE_RETURN		= (char)0x0d;			// CR gets filtered out

@@ -2038,39 +2104,13 @@
         vfprintf( _fp, format, va );

     }

     else {

-#if defined(_MSC_VER) && (_MSC_VER >= 1400 )

-		#if defined(WINCE)

-		int len = 512;

-        for (;;) {

-		    len = len*2;

-		    char* str = new char[len]();

-            const int required = _vsnprintf(str, len, format, va);

-			delete[] str;

-            if ( required != -1 ) {

-                len = required;

-                break;

-            }

-        }

-		#else

-        int len = _vscprintf( format, va );

-		#endif

-#else

-        int len = vsnprintf( 0, 0, format, va );

-#endif

+        int len = TIXML_VSCPRINTF( format, va );

         // Close out and re-start the va-args

         va_end( va );

         va_start( va, format );

         TIXMLASSERT( _buffer.Size() > 0 && _buffer[_buffer.Size() - 1] == 0 );

         char* p = _buffer.PushArr( len ) - 1;	// back up over the null terminator.

-#if defined(_MSC_VER) && (_MSC_VER >= 1400 )

-		#if defined(WINCE)

-		_vsnprintf( p, len+1, format, va );

-		#else

-		vsnprintf_s( p, len+1, _TRUNCATE, format, va );

-		#endif

-#else

-		vsnprintf( p, len+1, format, va );

-#endif

+		TIXML_VSNPRINTF( p, len+1, format, va );

     }

     va_end( va );

 }

diff --git a/tinyxml2.h b/tinyxml2.h
index 21cc6b2..0b86006 100755
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -91,34 +91,6 @@
 #endif

 

 

-#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE)

-// Microsoft visual studio, version 2005 and higher.

-/*int _snprintf_s(

-   char *buffer,

-   size_t sizeOfBuffer,

-   size_t count,

-   const char *format [,

-	  argument] ...

-);*/

-inline int TIXML_SNPRINTF( char* buffer, size_t size, const char* format, ... )

-{

-    va_list va;

-    va_start( va, format );

-    int result = vsnprintf_s( buffer, size, _TRUNCATE, format, va );

-    va_end( va );

-    return result;

-}

-#define TIXML_SSCANF   sscanf_s

-#elif defined WINCE

-#define TIXML_SNPRINTF _snprintf

-#define TIXML_SSCANF   sscanf

-#else

-// GCC version 3 and higher

-//#warning( "Using sn* functions." )

-#define TIXML_SNPRINTF snprintf

-#define TIXML_SSCANF   sscanf

-#endif

-

 /* Versioning, past 1.0.14:

 	http://semver.org/

 */

@@ -281,14 +253,17 @@
     }

 

     int Capacity() const				{

+        TIXMLASSERT( _allocated >= INITIAL_SIZE );

         return _allocated;

     }

 

     const T* Mem() const				{

+        TIXMLASSERT( _mem );

         return _mem;

     }

 

     T* Mem()							{

+        TIXMLASSERT( _mem );

         return _mem;

     }