static void CleanConnections (TYP_LIST *hList) { unsigned int i; CONNINST *hInst; for (i=0; i<List_Count(hList); i++) { hInst = List_ElementAt (hList, i); if (hInst->hThread == 0) { free (List_RemoveElementAt(hList, i)); i--; } } }
static void CleanConnections (TYP_LIST *hList) { unsigned int i; CONNINST *pInst; for (i=0; i<List_Count(hList); i++) { pInst = List_ElementAt (hList, i); if (!IsWindow (pInst->hWnd)) { if (pInst->hInst) FreeConnection(pInst); free (List_RemoveElementAt(hList, i)); i--; } } }
BOOL AvatarList_Remove(TYP_LIST *hList, AVATARENTRY *pEntry) { AVATARENTRY *pListEntry; int i, nCount; for (i=0, nCount=List_Count(hList); i<nCount; i++) { pListEntry = List_ElementAt (hList, i); if (pListEntry == pEntry) break; } if (i<nCount) { AvatarList_FreeEntry (pEntry); List_RemoveElementAt(hList, i); free (pEntry); return TRUE; } return FALSE; }
void MsgList_CollectGarbage(void) { unsigned int i; TYP_MSGLENTRY *pEntry; time_t t; if (!m_hMsgList) return; time(&t); t-=MSGLIST_TIMEOUT; for (i=0; i<List_Count(m_hMsgList); i++) { pEntry = List_ElementAt (m_hMsgList, i); if (pEntry->t < t) { LOG (("MsgList_CollectGarbage throwing out msg %d", pEntry->uMsgNum)); HeapFree (GetProcessHeap(), 0, List_RemoveElementAt (m_hMsgList, i)); i--; } } }
void *List_Pop (TYP_LIST *pstHandle) { if (pstHandle->uiCount) return List_RemoveElementAt(pstHandle ,pstHandle->uiCount-1); else return NULL; }