Просмотр исходного кода

Test on gcc. Fix warning. Fix uneeded params. Up VS debug to level 4 and fix warnings.

Lee Thomason (grinliz) 14 лет назад
Родитель
Сommit
9b093cc1ee
4 измененных файлов с 24 добавлено и 21 удалено
  1. 12 12
      tinyxml2.cpp
  2. 9 6
      tinyxml2.h
  3. 1 1
      tinyxml2/tinyxml2.vcxproj
  4. 2 2
      xmltest.cpp

+ 12 - 12
tinyxml2.cpp

@@ -27,10 +27,9 @@ distribution.
 #include <stdlib.h>
 #include <stdio.h>
 #include <ctype.h>
-#include <new.h>
+#include <new>
 #include <stdarg.h>
 
-//#pragma warning ( disable : 4291 )
 
 using namespace tinyxml2;
 
@@ -403,8 +402,11 @@ char* XMLDocument::Identify( char* p, XMLNode** node )
 	static const int cdataHeaderLen		= 9;
 	static const int elementHeaderLen	= 1;
 
+#pragma warning ( push )
+#pragma warning ( disable : 4127 )
 	TIXMLASSERT( sizeof( XMLComment ) == sizeof( XMLUnknown ) );		// use same memory pool
 	TIXMLASSERT( sizeof( XMLComment ) == sizeof( XMLDeclaration ) );	// use same memory pool
+#pragma warning (pop)
 
 	if ( XMLUtil::StringEqual( p, xmlHeader, xmlHeaderLen ) ) {
 		returnNode = new (commentPool.Alloc()) XMLDeclaration( this );
@@ -985,7 +987,7 @@ XMLAttribute* XMLElement::FindOrCreateAttribute( const char* name )
 {
 	XMLAttribute* attrib = FindAttribute( name );
 	if ( !attrib ) {
-		attrib = new (document->attributePool.Alloc() ) XMLAttribute( this );
+		attrib = new (document->attributePool.Alloc() ) XMLAttribute();
 		attrib->memPool = &document->attributePool;
 		LinkAttribute( attrib );
 		attrib->SetName( name );
@@ -1041,7 +1043,7 @@ char* XMLElement::ParseAttributes( char* p )
 
 		// attribute.
 		if ( XMLUtil::IsAlpha( *p ) ) {
-			XMLAttribute* attrib = new (document->attributePool.Alloc() ) XMLAttribute( this );
+			XMLAttribute* attrib = new (document->attributePool.Alloc() ) XMLAttribute();
 			attrib->memPool = &document->attributePool;
 
 			p = attrib->ParseDeep( p );
@@ -1080,7 +1082,6 @@ char* XMLElement::ParseDeep( char* p, StrPair* strPair )
 	// Read the element name.
 	p = XMLUtil::SkipWhiteSpace( p );
 	if ( !p ) return 0;
-	const char* start = p;
 
 	// The closing element is the </element> form. It is
 	// parsed just like a regular element then deleted from
@@ -1093,7 +1094,6 @@ char* XMLElement::ParseDeep( char* p, StrPair* strPair )
 	p = value.ParseName( p );
 	if ( value.Empty() ) return 0;
 
-	bool elementClosed=false;
 	p = ParseAttributes( p );
 	if ( !p || !*p || closingType ) 
 		return p;
@@ -1318,12 +1318,12 @@ XMLPrinter::XMLPrinter( FILE* file ) :
 	for( int i=0; i<NUM_ENTITIES; ++i ) {
 		TIXMLASSERT( entities[i].value < ENTITY_RANGE );
 		if ( entities[i].value < ENTITY_RANGE ) {
-			entityFlag[ entities[i].value ] = true;
+			entityFlag[ (int)entities[i].value ] = true;
 		}
 	}
-	restrictedEntityFlag['&'] = true;
-	restrictedEntityFlag['<'] = true;
-	restrictedEntityFlag['>'] = true;	// not required, but consistency is nice
+	restrictedEntityFlag[(int)'&'] = true;
+	restrictedEntityFlag[(int)'<'] = true;
+	restrictedEntityFlag[(int)'>'] = true;	// not required, but consistency is nice
 	buffer.Push( 0 );
 }
 
@@ -1354,7 +1354,7 @@ void XMLPrinter::Print( const char* format, ... )
 		#else
 			int len = vsnprintf( 0, 0, format, va );
 			char* p = buffer.PushArr( len ) - 1;
-			vsprintf_s( p, len+1, format, va );
+			vsnprintf( p, len+1, format, va );
 		#endif
 	}
     va_end( va );
@@ -1556,7 +1556,7 @@ bool XMLPrinter::VisitEnter( const XMLElement& element, const XMLAttribute* attr
 }
 
 
-bool XMLPrinter::VisitExit( const XMLElement& element )
+bool XMLPrinter::VisitExit( const XMLElement& )
 {
 	CloseElement();
 	return true;

+ 9 - 6
tinyxml2.h

@@ -33,6 +33,9 @@ distribution.
 /* TODO: create main page description.
    TODO: add 'lastAttribute' for faster parsing.
 */
+/*
+	gcc: g++ -Wall tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
+*/
 
 #if defined( _DEBUG ) || defined( DEBUG ) || defined (__DEBUG__)
 	#ifndef DEBUG
@@ -720,15 +723,15 @@ public:
 	    If the value isn't an integer, 0 will be returned. There is no error checking;
 		use QueryIntAttribute() if you need error checking.
 	*/
-	int		 IntAttribute( const char* name ) const		{ int i=0;		QueryIntAttribute( &i );		return i; }
+	int		 IntAttribute() const				{ int i=0;		QueryIntAttribute( &i );		return i; }
 	/// Query as an unsigned integer. See IntAttribute()
-	unsigned UnsignedAttribute( const char* name ) const{ unsigned i=0; QueryUnsignedAttribute( &i );	return i; }
+	unsigned UnsignedAttribute() const			{ unsigned i=0; QueryUnsignedAttribute( &i );	return i; }
 	/// Query as a boolean. See IntAttribute()
-	bool	 BoolAttribute( const char* name ) const	{ bool b=false; QueryBoolAttribute( &b );		return b; }
+	bool	 BoolAttribute() const				{ bool b=false; QueryBoolAttribute( &b );		return b; }
 	/// Query as a double. See IntAttribute()
-	double 	 DoubleAttribute( const char* name ) const	{ double d=0;	QueryDoubleAttribute( &d );		return d; }
+	double 	 DoubleAttribute() const			{ double d=0;	QueryDoubleAttribute( &d );		return d; }
 	/// Query as a float. See IntAttribute()
-	float	 FloatAttribute( const char* name ) const	{ float f=0;	QueryFloatAttribute( &f );		return f; }
+	float	 FloatAttribute() const				{ float f=0;	QueryFloatAttribute( &f );		return f; }
 
 	/** QueryIntAttribute interprets the attribute as an integer, and returns the value
 		in the provided paremeter. The function will return XML_NO_ERROR on success,
@@ -760,7 +763,7 @@ public:
 private:
 	enum { BUF_SIZE = 200 };
 
-	XMLAttribute( XMLElement* element ) : next( 0 ) {}
+	XMLAttribute() : next( 0 ) {}
 	virtual ~XMLAttribute()	{}
 	XMLAttribute( const XMLAttribute& );	// not supported
 	void operator=( const XMLAttribute& );	// not supported

+ 1 - 1
tinyxml2/tinyxml2.vcxproj

@@ -47,7 +47,7 @@
     <ClCompile>
       <PrecompiledHeader>
       </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
+      <WarningLevel>Level4</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>

+ 2 - 2
xmltest.cpp

@@ -69,7 +69,7 @@ void NullLineEndings( char* p )
 }
 
 
-int main( int argc, const char* argv )
+int main( int /*argc*/, const char* /*argv*/ )
 {
 	#if defined( _MSC_VER )
 		_CrtMemCheckpoint( &startMemState );
@@ -621,4 +621,4 @@ int main( int argc, const char* argv )
 
 	printf ("\nPass %d, Fail %d\n", gPass, gFail);
 	return 0;
-}
+}