All pastes #1842579 Raw Edit

xml speedup

public diff v1 · immutable
#1842579 ·published 2010-03-16 17:28 UTC
rendered paste body
Index: XmlFile.h===================================================================--- XmlFile.h	(revision 28331)+++ XmlFile.h	(working copy)@@ -57,27 +57,31 @@ typedef vector<XNode*> XNodes;  #define FOREACH_Attr( pNode, Var ) \+	XAttrs::const_iterator Var##End=(pNode)->m_attrs.end(); \ 	for( XAttrs::iterator Var = (pNode)->m_attrs.begin(); \-		Var != (pNode)->m_attrs.end(); \+		Var != Var##End; \ 		++Var )  #define FOREACH_CONST_Attr( pNode, Var ) \+	XAttrs::const_iterator Var##End=(pNode)->m_attrs.end(); \ 	for( XAttrs::const_iterator Var = (pNode)->m_attrs.begin(); \-		Var != (pNode)->m_attrs.end(); \+	Var != Var##End; \ 		++Var )  #define FOREACH_Child( pNode, Var ) \ 	XNode *Var = NULL; \+	XNodes::const_iterator Var##EndItr=(pNode)->m_childs.end(); \ 	for( XNodes::iterator Var##Iter = (pNode)->m_childs.begin(); \-		Var = (Var##Iter != (pNode)->m_childs.end())? *Var##Iter:NULL, \-		Var##Iter != (pNode)->m_childs.end(); \+		Var = (Var##Iter != Var##EndItr)? *Var##Iter:NULL, \+		Var##Iter != Var##EndItr; \ 		++Var##Iter )  #define FOREACH_CONST_Child( pNode, Var ) \ 	const XNode *Var = NULL; \+	XNodes::const_iterator Var##EndItr=(pNode)->m_childs.end(); \ 	for( XNodes::const_iterator Var##Iter = (pNode)->m_childs.begin(); \-		Var = (Var##Iter != (pNode)->m_childs.end())? *Var##Iter:NULL, \-		Var##Iter != (pNode)->m_childs.end(); \+		Var = (Var##Iter != Var##EndItr)? *Var##Iter:NULL, \+		Var##Iter != Var##EndItr; \ 		++Var##Iter )  class XNode