MCPcopy Create free account
hub / github.com/ddnet/ddnet / Add

Method Add

src/engine/shared/netban.cpp:85–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83
84template<class T, int HashCount>
85typename CNetBan::CBan<T> *CNetBan::CBanPool<T, HashCount>::Add(const T *pData, const CBanInfo *pInfo, const CNetHash *pNetHash)
86{
87 if(!m_pFirstFree)
88 return nullptr;
89
90 // create new ban
91 CBan<T> *pBan = m_pFirstFree;
92 pBan->m_Data = *pData;
93 pBan->m_Info = *pInfo;
94 pBan->m_NetHash = *pNetHash;
95 if(pBan->m_pNext)
96 pBan->m_pNext->m_pPrev = pBan->m_pPrev;
97 if(pBan->m_pPrev)
98 pBan->m_pPrev->m_pNext = pBan->m_pNext;
99 else
100 m_pFirstFree = pBan->m_pNext;
101
102 // add it to the hash list
103 if(m_aapHashList[pNetHash->m_HashIndex][pNetHash->m_Hash])
104 m_aapHashList[pNetHash->m_HashIndex][pNetHash->m_Hash]->m_pHashPrev = pBan;
105 pBan->m_pHashPrev = 0;
106 pBan->m_pHashNext = m_aapHashList[pNetHash->m_HashIndex][pNetHash->m_Hash];
107 m_aapHashList[pNetHash->m_HashIndex][pNetHash->m_Hash] = pBan;
108
109 // insert it into the used list
110 InsertUsed(pBan);
111
112 // update ban count
113 ++m_CountUsed;
114
115 return pBan;
116}
117
118template<class T, int HashCount>
119int CNetBan::CBanPool<T, HashCount>::Remove(CBan<T> *pBan)

Callers 1

BanMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected