LOL Is there any other bugs we should know about? On Mon, Apr 14, 2008 at 5:31 PM, Yahn Bernier <[EMAIL PROTECTED]> wrote: > Those places are all bogus and should be considered bugs. If nothing is > deleted from the tree then it might work in most cases, but it's the > wrong iteration pattern. > > Yahn > > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Tim Baker > Sent: Monday, April 14, 2008 2:38 PM > To: [email protected] > Subject: [hlcoders] Proper way to iterate a CUtlDict? > > I was tracking down a crash in ai_speech.cpp > CConceptHistoriesDataOps::Save. > It looks as though m_ConceptHistories is not being iterated over > properly? > > CUtlDict< ConceptHistory_t, int > *ch = ...; > int count = ch->Count(); > for (int i = 0; i < count; i++ ) { ... } > > CUtlDict uses a CUtlRBTree for storage and that class has methods > for testing whether an index is valid or not. Nodes in the tree aren't > stored like an array, so going from 0->count seems wrong. The correct > way seems to be this: > > for ( int i = ch->First(); i != ch->InvalidIndex(); i = ch->Next( i ) ) > > But there are so many places in the code that iterate over CUtlDicts > from 0->count I'm wondering what is going on here. > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > >
_______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

