Kaynak kodlarını inceliyordum bazı durumlar gözüme çarptı AsyncSQL.cpp içerisinde bazı yerlerde new kullanılmış fakat delete kullanılmamış olduğunu gördüm. Bu konu hakkında bilgisi olan var mı daha başka yerlerde delete edilmiş olabilir mi ?
Kod:
void CAsyncSQL::AsyncQuery(const char * c_pszQuery)
{
auto * p = new SQLMsg;
p->m_pkSQL = &m_hDB;
p->iID = ++m_iMsgCount;
p->stQuery = c_pszQuery;
PushQuery(p);
}
void CAsyncSQL::ReturnQuery(const char * c_pszQuery, void * pvUserData)
{
auto * p = new SQLMsg;
p->m_pkSQL = &m_hDB;
p->iID = ++m_iMsgCount;
p->stQuery = c_pszQuery;
p->bReturn = true;
p->pvUserData = pvUserData;
PushQuery(p);
}
void CAsyncSQL::PushQuery(SQLMsg * p)
{
MUTEX_LOCK(m_mtxQuery.get());
m_queue_query.push(p);
//m_map_kSQLMsgUnfinished.insert(std::make_pair(p->iID, p));
m_sem.Release();
MUTEX_UNLOCK(m_mtxQuery.get());
}
std::queue<SQLMsg *> m_queue_query;