mirror of
https://github.com/AxioDL/tinyxml2.git
synced 2025-05-15 20:01:24 +00:00
CodeReview Fix: The non-const reference syntax isn't used in the codebase. Should be a pointer.
This commit is contained in:
parent
2489afcc61
commit
4f756161d0
58
tinyxml2.cpp
58
tinyxml2.cpp
@ -189,7 +189,7 @@ void StrPair::SetStr( const char* str, int flags )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char* StrPair::ParseText( char* p, const char* endTag, int strFlags, int& curLineNum )
|
char* StrPair::ParseText( char* p, const char* endTag, int strFlags, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
TIXMLASSERT( endTag && *endTag );
|
TIXMLASSERT( endTag && *endTag );
|
||||||
@ -204,7 +204,7 @@ char* StrPair::ParseText( char* p, const char* endTag, int strFlags, int& curLin
|
|||||||
Set( start, p, strFlags );
|
Set( start, p, strFlags );
|
||||||
return p + length;
|
return p + length;
|
||||||
} else if (*p == '\n') {
|
} else if (*p == '\n') {
|
||||||
++curLineNum;
|
++(*curLineNumPtr);
|
||||||
}
|
}
|
||||||
++p;
|
++p;
|
||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
@ -239,7 +239,7 @@ void StrPair::CollapseWhitespace()
|
|||||||
TIXMLASSERT( ( _flags & NEEDS_DELETE ) == 0 );
|
TIXMLASSERT( ( _flags & NEEDS_DELETE ) == 0 );
|
||||||
// Trim leading space.
|
// Trim leading space.
|
||||||
int unusedLineNum(0);
|
int unusedLineNum(0);
|
||||||
_start = XMLUtil::SkipWhiteSpace( _start, unusedLineNum );
|
_start = XMLUtil::SkipWhiteSpace( _start, &unusedLineNum );
|
||||||
|
|
||||||
if ( *_start ) {
|
if ( *_start ) {
|
||||||
const char* p = _start; // the read pointer
|
const char* p = _start; // the read pointer
|
||||||
@ -247,7 +247,7 @@ void StrPair::CollapseWhitespace()
|
|||||||
|
|
||||||
while( *p ) {
|
while( *p ) {
|
||||||
if ( XMLUtil::IsWhiteSpace( *p )) {
|
if ( XMLUtil::IsWhiteSpace( *p )) {
|
||||||
p = XMLUtil::SkipWhiteSpace( p, unusedLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, &unusedLineNum );
|
||||||
if ( *p == 0 ) {
|
if ( *p == 0 ) {
|
||||||
break; // don't write to q; this trims the trailing space.
|
break; // don't write to q; this trims the trailing space.
|
||||||
}
|
}
|
||||||
@ -641,7 +641,7 @@ char* XMLDocument::Identify( char* p, XMLNode** node )
|
|||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
char* const start = p;
|
char* const start = p;
|
||||||
int const startLine = _parseCurLineNum;
|
int const startLine = _parseCurLineNum;
|
||||||
p = XMLUtil::SkipWhiteSpace( p, _parseCurLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, &_parseCurLineNum );
|
||||||
if( !*p ) {
|
if( !*p ) {
|
||||||
*node = 0;
|
*node = 0;
|
||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
@ -954,7 +954,7 @@ const XMLElement* XMLNode::PreviousSiblingElement( const char* name ) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char* XMLNode::ParseDeep( char* p, StrPair* parentEnd, int& curLineNum )
|
char* XMLNode::ParseDeep( char* p, StrPair* parentEnd, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
// This is a recursive method, but thinking about it "at the current level"
|
// This is a recursive method, but thinking about it "at the current level"
|
||||||
// it is a pretty simple flat list:
|
// it is a pretty simple flat list:
|
||||||
@ -985,7 +985,7 @@ char* XMLNode::ParseDeep( char* p, StrPair* parentEnd, int& curLineNum )
|
|||||||
int nodeLineNum = node->_parseLineNum;
|
int nodeLineNum = node->_parseLineNum;
|
||||||
|
|
||||||
StrPair endTag;
|
StrPair endTag;
|
||||||
p = node->ParseDeep( p, &endTag, curLineNum );
|
p = node->ParseDeep( p, &endTag, curLineNumPtr );
|
||||||
if ( !p ) {
|
if ( !p ) {
|
||||||
DeleteNode( node );
|
DeleteNode( node );
|
||||||
if ( !_document->Error() ) {
|
if ( !_document->Error() ) {
|
||||||
@ -1091,11 +1091,11 @@ const XMLElement* XMLNode::ToElementWithName( const char* name ) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --------- XMLText ---------- //
|
// --------- XMLText ---------- //
|
||||||
char* XMLText::ParseDeep( char* p, StrPair*, int& curLineNum )
|
char* XMLText::ParseDeep( char* p, StrPair*, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
const char* start = p;
|
const char* start = p;
|
||||||
if ( this->CData() ) {
|
if ( this->CData() ) {
|
||||||
p = _value.ParseText( p, "]]>", StrPair::NEEDS_NEWLINE_NORMALIZATION, curLineNum );
|
p = _value.ParseText( p, "]]>", StrPair::NEEDS_NEWLINE_NORMALIZATION, curLineNumPtr );
|
||||||
if ( !p ) {
|
if ( !p ) {
|
||||||
_document->SetError( XML_ERROR_PARSING_CDATA, start, 0, _parseLineNum );
|
_document->SetError( XML_ERROR_PARSING_CDATA, start, 0, _parseLineNum );
|
||||||
}
|
}
|
||||||
@ -1107,7 +1107,7 @@ char* XMLText::ParseDeep( char* p, StrPair*, int& curLineNum )
|
|||||||
flags |= StrPair::NEEDS_WHITESPACE_COLLAPSING;
|
flags |= StrPair::NEEDS_WHITESPACE_COLLAPSING;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = _value.ParseText( p, "<", flags, curLineNum );
|
p = _value.ParseText( p, "<", flags, curLineNumPtr );
|
||||||
if ( p && *p ) {
|
if ( p && *p ) {
|
||||||
return p-1;
|
return p-1;
|
||||||
}
|
}
|
||||||
@ -1156,11 +1156,11 @@ XMLComment::~XMLComment()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char* XMLComment::ParseDeep( char* p, StrPair*, int& curLineNum )
|
char* XMLComment::ParseDeep( char* p, StrPair*, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
// Comment parses as text.
|
// Comment parses as text.
|
||||||
const char* start = p;
|
const char* start = p;
|
||||||
p = _value.ParseText( p, "-->", StrPair::COMMENT, curLineNum );
|
p = _value.ParseText( p, "-->", StrPair::COMMENT, curLineNumPtr );
|
||||||
if ( p == 0 ) {
|
if ( p == 0 ) {
|
||||||
_document->SetError( XML_ERROR_PARSING_COMMENT, start, 0, _parseLineNum );
|
_document->SetError( XML_ERROR_PARSING_COMMENT, start, 0, _parseLineNum );
|
||||||
}
|
}
|
||||||
@ -1206,11 +1206,11 @@ XMLDeclaration::~XMLDeclaration()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char* XMLDeclaration::ParseDeep( char* p, StrPair*, int& curLineNum )
|
char* XMLDeclaration::ParseDeep( char* p, StrPair*, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
// Declaration parses as text.
|
// Declaration parses as text.
|
||||||
const char* start = p;
|
const char* start = p;
|
||||||
p = _value.ParseText( p, "?>", StrPair::NEEDS_NEWLINE_NORMALIZATION, curLineNum );
|
p = _value.ParseText( p, "?>", StrPair::NEEDS_NEWLINE_NORMALIZATION, curLineNumPtr );
|
||||||
if ( p == 0 ) {
|
if ( p == 0 ) {
|
||||||
_document->SetError( XML_ERROR_PARSING_DECLARATION, start, 0, _parseLineNum );
|
_document->SetError( XML_ERROR_PARSING_DECLARATION, start, 0, _parseLineNum );
|
||||||
}
|
}
|
||||||
@ -1255,12 +1255,12 @@ XMLUnknown::~XMLUnknown()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char* XMLUnknown::ParseDeep( char* p, StrPair*, int& curLineNum )
|
char* XMLUnknown::ParseDeep( char* p, StrPair*, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
// Unknown parses as text.
|
// Unknown parses as text.
|
||||||
const char* start = p;
|
const char* start = p;
|
||||||
|
|
||||||
p = _value.ParseText( p, ">", StrPair::NEEDS_NEWLINE_NORMALIZATION, curLineNum );
|
p = _value.ParseText( p, ">", StrPair::NEEDS_NEWLINE_NORMALIZATION, curLineNumPtr );
|
||||||
if ( !p ) {
|
if ( !p ) {
|
||||||
_document->SetError( XML_ERROR_PARSING_UNKNOWN, start, 0, _parseLineNum );
|
_document->SetError( XML_ERROR_PARSING_UNKNOWN, start, 0, _parseLineNum );
|
||||||
}
|
}
|
||||||
@ -1304,7 +1304,7 @@ const char* XMLAttribute::Value() const
|
|||||||
return _value.GetStr();
|
return _value.GetStr();
|
||||||
}
|
}
|
||||||
|
|
||||||
char* XMLAttribute::ParseDeep( char* p, bool processEntities, int& curLineNum )
|
char* XMLAttribute::ParseDeep( char* p, bool processEntities, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
// Parse using the name rules: bug fix, was using ParseText before
|
// Parse using the name rules: bug fix, was using ParseText before
|
||||||
p = _name.ParseName( p );
|
p = _name.ParseName( p );
|
||||||
@ -1313,13 +1313,13 @@ char* XMLAttribute::ParseDeep( char* p, bool processEntities, int& curLineNum )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Skip white space before =
|
// Skip white space before =
|
||||||
p = XMLUtil::SkipWhiteSpace( p, curLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, curLineNumPtr );
|
||||||
if ( *p != '=' ) {
|
if ( *p != '=' ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
++p; // move up to opening quote
|
++p; // move up to opening quote
|
||||||
p = XMLUtil::SkipWhiteSpace( p, curLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, curLineNumPtr );
|
||||||
if ( *p != '\"' && *p != '\'' ) {
|
if ( *p != '\"' && *p != '\'' ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1327,7 +1327,7 @@ char* XMLAttribute::ParseDeep( char* p, bool processEntities, int& curLineNum )
|
|||||||
char endTag[2] = { *p, 0 };
|
char endTag[2] = { *p, 0 };
|
||||||
++p; // move past opening quote
|
++p; // move past opening quote
|
||||||
|
|
||||||
p = _value.ParseText( p, endTag, processEntities ? StrPair::ATTRIBUTE_VALUE : StrPair::ATTRIBUTE_VALUE_LEAVE_ENTITIES, curLineNum );
|
p = _value.ParseText( p, endTag, processEntities ? StrPair::ATTRIBUTE_VALUE : StrPair::ATTRIBUTE_VALUE_LEAVE_ENTITIES, curLineNumPtr );
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1761,14 +1761,14 @@ void XMLElement::DeleteAttribute( const char* name )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char* XMLElement::ParseAttributes( char* p, int& curLineNum )
|
char* XMLElement::ParseAttributes( char* p, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
const char* start = p;
|
const char* start = p;
|
||||||
XMLAttribute* prevAttribute = 0;
|
XMLAttribute* prevAttribute = 0;
|
||||||
|
|
||||||
// Read the attributes.
|
// Read the attributes.
|
||||||
while( p ) {
|
while( p ) {
|
||||||
p = XMLUtil::SkipWhiteSpace( p, curLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, curLineNumPtr );
|
||||||
if ( !(*p) ) {
|
if ( !(*p) ) {
|
||||||
_document->SetError( XML_ERROR_PARSING_ELEMENT, start, Name(), _parseLineNum );
|
_document->SetError( XML_ERROR_PARSING_ELEMENT, start, Name(), _parseLineNum );
|
||||||
return 0;
|
return 0;
|
||||||
@ -1782,7 +1782,7 @@ char* XMLElement::ParseAttributes( char* p, int& curLineNum )
|
|||||||
|
|
||||||
int attrLineNum = attrib->_parseLineNum;
|
int attrLineNum = attrib->_parseLineNum;
|
||||||
|
|
||||||
p = attrib->ParseDeep( p, _document->ProcessEntities(), curLineNum );
|
p = attrib->ParseDeep( p, _document->ProcessEntities(), curLineNumPtr );
|
||||||
if ( !p || Attribute( attrib->Name() ) ) {
|
if ( !p || Attribute( attrib->Name() ) ) {
|
||||||
DeleteAttribute( attrib );
|
DeleteAttribute( attrib );
|
||||||
_document->SetError( XML_ERROR_PARSING_ATTRIBUTE, start, p, attrLineNum );
|
_document->SetError( XML_ERROR_PARSING_ATTRIBUTE, start, p, attrLineNum );
|
||||||
@ -1842,10 +1842,10 @@ XMLAttribute* XMLElement::CreateAttribute()
|
|||||||
// <ele></ele>
|
// <ele></ele>
|
||||||
// <ele>foo<b>bar</b></ele>
|
// <ele>foo<b>bar</b></ele>
|
||||||
//
|
//
|
||||||
char* XMLElement::ParseDeep( char* p, StrPair* strPair, int& curLineNum )
|
char* XMLElement::ParseDeep( char* p, StrPair* strPair, int* curLineNumPtr )
|
||||||
{
|
{
|
||||||
// Read the element name.
|
// Read the element name.
|
||||||
p = XMLUtil::SkipWhiteSpace( p, curLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, curLineNumPtr );
|
||||||
|
|
||||||
// The closing element is the </element> form. It is
|
// The closing element is the </element> form. It is
|
||||||
// parsed just like a regular element then deleted from
|
// parsed just like a regular element then deleted from
|
||||||
@ -1860,12 +1860,12 @@ char* XMLElement::ParseDeep( char* p, StrPair* strPair, int& curLineNum )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = ParseAttributes( p, curLineNum );
|
p = ParseAttributes( p, curLineNumPtr );
|
||||||
if ( !p || !*p || _closingType ) {
|
if ( !p || !*p || _closingType ) {
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = XMLNode::ParseDeep( p, strPair, curLineNum );
|
p = XMLNode::ParseDeep( p, strPair, curLineNumPtr );
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2289,13 +2289,13 @@ void XMLDocument::Parse()
|
|||||||
_parseCurLineNum = 1;
|
_parseCurLineNum = 1;
|
||||||
_parseLineNum = 1;
|
_parseLineNum = 1;
|
||||||
char* p = _charBuffer;
|
char* p = _charBuffer;
|
||||||
p = XMLUtil::SkipWhiteSpace( p, _parseCurLineNum );
|
p = XMLUtil::SkipWhiteSpace( p, &_parseCurLineNum );
|
||||||
p = const_cast<char*>( XMLUtil::ReadBOM( p, &_writeBOM ) );
|
p = const_cast<char*>( XMLUtil::ReadBOM( p, &_writeBOM ) );
|
||||||
if ( !*p ) {
|
if ( !*p ) {
|
||||||
SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0, 0 );
|
SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0, 0 );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ParseDeep(p, 0, _parseCurLineNum );
|
ParseDeep(p, 0, &_parseCurLineNum );
|
||||||
}
|
}
|
||||||
|
|
||||||
XMLPrinter::XMLPrinter( FILE* file, bool compact, int depth ) :
|
XMLPrinter::XMLPrinter( FILE* file, bool compact, int depth ) :
|
||||||
|
26
tinyxml2.h
26
tinyxml2.h
@ -160,7 +160,7 @@ public:
|
|||||||
|
|
||||||
void SetStr( const char* str, int flags=0 );
|
void SetStr( const char* str, int flags=0 );
|
||||||
|
|
||||||
char* ParseText( char* in, const char* endTag, int strFlags, int& curLineNum );
|
char* ParseText( char* in, const char* endTag, int strFlags, int* curLineNumPtr );
|
||||||
char* ParseName( char* in );
|
char* ParseName( char* in );
|
||||||
|
|
||||||
void TransferTo( StrPair* other );
|
void TransferTo( StrPair* other );
|
||||||
@ -530,19 +530,19 @@ enum XMLError {
|
|||||||
class XMLUtil
|
class XMLUtil
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const char* SkipWhiteSpace( const char* p, int& curLineNum ) {
|
static const char* SkipWhiteSpace( const char* p, int* curLineNumPtr ) {
|
||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
while( IsWhiteSpace(*p) ) {
|
while( IsWhiteSpace(*p) ) {
|
||||||
if (*p == '\n') {
|
if (*p == '\n') {
|
||||||
++curLineNum;
|
++(*curLineNumPtr);
|
||||||
}
|
}
|
||||||
++p;
|
++p;
|
||||||
}
|
}
|
||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static char* SkipWhiteSpace( char* p, int& curLineNum ) {
|
static char* SkipWhiteSpace( char* p, int* curLineNumPtr ) {
|
||||||
return const_cast<char*>( SkipWhiteSpace( const_cast<const char*>(p), curLineNum ) );
|
return const_cast<char*>( SkipWhiteSpace( const_cast<const char*>(p), curLineNumPtr ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't
|
// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't
|
||||||
@ -895,7 +895,7 @@ protected:
|
|||||||
XMLNode( XMLDocument* );
|
XMLNode( XMLDocument* );
|
||||||
virtual ~XMLNode();
|
virtual ~XMLNode();
|
||||||
|
|
||||||
virtual char* ParseDeep( char*, StrPair*, int& );
|
virtual char* ParseDeep( char*, StrPair*, int* );
|
||||||
|
|
||||||
XMLDocument* _document;
|
XMLDocument* _document;
|
||||||
XMLNode* _parent;
|
XMLNode* _parent;
|
||||||
@ -963,7 +963,7 @@ protected:
|
|||||||
XMLText( XMLDocument* doc ) : XMLNode( doc ), _isCData( false ) {}
|
XMLText( XMLDocument* doc ) : XMLNode( doc ), _isCData( false ) {}
|
||||||
virtual ~XMLText() {}
|
virtual ~XMLText() {}
|
||||||
|
|
||||||
char* ParseDeep( char*, StrPair* endTag, int& curLineNum );
|
char* ParseDeep( char*, StrPair* endTag, int* curLineNumPtr );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _isCData;
|
bool _isCData;
|
||||||
@ -994,7 +994,7 @@ protected:
|
|||||||
XMLComment( XMLDocument* doc );
|
XMLComment( XMLDocument* doc );
|
||||||
virtual ~XMLComment();
|
virtual ~XMLComment();
|
||||||
|
|
||||||
char* ParseDeep( char*, StrPair* endTag, int& curLineNum);
|
char* ParseDeep( char*, StrPair* endTag, int* curLineNumPtr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
XMLComment( const XMLComment& ); // not supported
|
XMLComment( const XMLComment& ); // not supported
|
||||||
@ -1033,7 +1033,7 @@ protected:
|
|||||||
XMLDeclaration( XMLDocument* doc );
|
XMLDeclaration( XMLDocument* doc );
|
||||||
virtual ~XMLDeclaration();
|
virtual ~XMLDeclaration();
|
||||||
|
|
||||||
char* ParseDeep( char*, StrPair* endTag, int& curLineNum );
|
char* ParseDeep( char*, StrPair* endTag, int* curLineNumPtr );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
XMLDeclaration( const XMLDeclaration& ); // not supported
|
XMLDeclaration( const XMLDeclaration& ); // not supported
|
||||||
@ -1068,7 +1068,7 @@ protected:
|
|||||||
XMLUnknown( XMLDocument* doc );
|
XMLUnknown( XMLDocument* doc );
|
||||||
virtual ~XMLUnknown();
|
virtual ~XMLUnknown();
|
||||||
|
|
||||||
char* ParseDeep( char*, StrPair* endTag, int& curLineNum );
|
char* ParseDeep( char*, StrPair* endTag, int* curLineNumPtr );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
XMLUnknown( const XMLUnknown& ); // not supported
|
XMLUnknown( const XMLUnknown& ); // not supported
|
||||||
@ -1183,7 +1183,7 @@ private:
|
|||||||
void operator=( const XMLAttribute& ); // not supported
|
void operator=( const XMLAttribute& ); // not supported
|
||||||
void SetName( const char* name );
|
void SetName( const char* name );
|
||||||
|
|
||||||
char* ParseDeep( char* p, bool processEntities, int& curLineNum );
|
char* ParseDeep( char* p, bool processEntities, int* curLineNumPtr );
|
||||||
|
|
||||||
mutable StrPair _name;
|
mutable StrPair _name;
|
||||||
mutable StrPair _value;
|
mutable StrPair _value;
|
||||||
@ -1559,7 +1559,7 @@ public:
|
|||||||
virtual bool ShallowEqual( const XMLNode* compare ) const;
|
virtual bool ShallowEqual( const XMLNode* compare ) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
char* ParseDeep( char* p, StrPair* endTag, int& curLineNum );
|
char* ParseDeep( char* p, StrPair* endTag, int* curLineNumPtr );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
XMLElement( XMLDocument* doc );
|
XMLElement( XMLDocument* doc );
|
||||||
@ -1572,7 +1572,7 @@ private:
|
|||||||
}
|
}
|
||||||
XMLAttribute* FindOrCreateAttribute( const char* name );
|
XMLAttribute* FindOrCreateAttribute( const char* name );
|
||||||
//void LinkAttribute( XMLAttribute* attrib );
|
//void LinkAttribute( XMLAttribute* attrib );
|
||||||
char* ParseAttributes( char* p, int& curLineNum );
|
char* ParseAttributes( char* p, int* curLineNumPtr );
|
||||||
static void DeleteAttribute( XMLAttribute* attribute );
|
static void DeleteAttribute( XMLAttribute* attribute );
|
||||||
XMLAttribute* CreateAttribute();
|
XMLAttribute* CreateAttribute();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user