From 5d6e7427e028cf3b72ff331a5774f03e9ab0f0a8 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 8 Jun 2006 06:11:32 +0000 Subject: [PATCH] fix invalid deref --- stepmania/src/XmlFile.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 {