mirror of https://github.com/AxioDL/tinyxml2.git
Test on gcc. Fix warning. Fix uneeded params. Up VS debug to level 4 and fix warnings.
This commit is contained in:
parent
647eed32ef
commit
9b093cc1ee
24
tinyxml2.cpp
24
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;
|
||||
|
|
15
tinyxml2.h
15
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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue