void Node::GetChildDefs(CAtlList<Definition*>& l, LPCWSTR type, bool fFirst) { CAtlList<Definition*> rdl[3]; if(fFirst) { if(Definition* pDef = m_pnf->GetDefByName(m_type)) { pDef->GetChildDefs(rdl[pDef->m_priority], type, false); } } POSITION pos = m_nodes.GetHeadPosition(); while(pos) { if(Node* pNode = m_nodes.GetNext(pos)) { pNode->GetChildDefs(rdl[pNode->m_priority], type, false); } } for(ptrdiff_t i = 0; i < sizeof(rdl) / sizeof(rdl[0]); i++) { l.AddTailList(&rdl[i]); } }
void CInsRecycle::DoRecycle() { CAtlList<CResRoot*> tmplist; { CObjGuard guard( m_lock ); if ( m_resList.GetCount() ) { tmplist.AddTailList( &m_resList ); m_resList.RemoveAll(); } } while( tmplist.GetCount() ) { CResRoot* pi = tmplist.RemoveHead(); if ( pi ) { pi->Destroy(); delete pi; } } }
void SubtitleFile::SegmentList::Lookup(float at, CAtlList<SegmentItem>& sis) { sis.RemoveAll(); size_t k; if(Lookup(at, k)) { sis.AddTailList(GetSegment(k)); } }
void Reference::GetChildDefs(CAtlList<Definition*>& l, LPCWSTR type, bool fFirst) { CAtlList<Definition*> rdl[3]; POSITION pos = m_nodes.GetHeadPosition(); while(pos) { if(Definition* pDef = dynamic_cast<Definition*>(m_nodes.GetNext(pos))) { if(!type || pDef->m_type == type) // TODO: faster lookup { rdl[pDef->m_priority].AddTail(pDef); } } } for(ptrdiff_t i = 0; i < sizeof(rdl) / sizeof(rdl[0]); i++) { l.AddTailList(&rdl[i]); } }