IDataPack * CDataPack::New() { if (sDataPackCache.empty()) return new CDataPack(); CDataPack *pack = sDataPackCache.back().take(); sDataPackCache.pop(); pack->Initialize(); return pack; }
IDataPack *SourceModBase::CreateDataPack() { CDataPack *pack; if (m_freepacks.empty()) { pack = new CDataPack; } else { pack = m_freepacks.front(); m_freepacks.pop(); pack->Initialize(); } return pack; }