diff --git a/stepmania/src/XmlFile.h b/stepmania/src/XmlFile.h index 5601d7b2a1..0c2094b9b1 100644 --- a/stepmania/src/XmlFile.h +++ b/stepmania/src/XmlFile.h @@ -24,16 +24,18 @@ typedef multimap XNodes; #define FOREACH_Child( pNode, Var ) \ XNodes::iterator Var##Iter; \ XNode *Var = NULL; \ - for( Var##Iter = (pNode)->m_childs.begin(), Var = Var##Iter->second; \ + for( Var##Iter = (pNode)->m_childs.begin(); \ + Var = (Var##Iter != (pNode)->m_childs.end())? Var##Iter->second:NULL, \ Var##Iter != (pNode)->m_childs.end(); \ - ++Var##Iter, Var = Var##Iter->second ) + ++Var##Iter ) #define FOREACH_CONST_Child( pNode, Var ) \ XNodes::const_iterator Var##Iter; \ const XNode *Var = NULL; \ - for( Var##Iter = (pNode)->m_childs.begin(), Var = Var##Iter->second; \ + for( Var##Iter = (pNode)->m_childs.begin(); \ + Var = (Var##Iter != (pNode)->m_childs.end())? Var##Iter->second:NULL, \ Var##Iter != (pNode)->m_childs.end(); \ - ++Var##Iter, Var = Var##Iter->second ) + ++Var##Iter ) enum PCODE {