Я пытаюсь помечать объекты для обновления базы данных в пространстве имен «api», помещая их уникальные номера в очередь в пространстве имен баз данных.Это делается с помощью функции flagObjectToUpdate также в пространстве имен «база данных».
При тестировании кода ниже с помощью cppUTest я получаю ряд утечек памяти, и я полностью озадачен тем, как это может вызвать утечку.Я сузил его до приведенного ниже кода, закомментировав все остальные строки кода в стеке вызовов.
Может ли кто-нибудь дать некоторое представление?
namespace api
{
uint32_t setObjVal(uint32_t objNumber, uint32_t objVal, uint32_t source)
{
// set object values
if(source == EXTERNAL_WRITE)
dataBase::flagObjectsToUpdate(objNumber);
return result;
}
}
namespace database
{
std::queue<uint32_t> objNumQueue;
void flagObjectsToUpdate(uint32_t objNumber)
{
objNumQueue.push(objNumber);
}
uint32_t updateObject(void)
{
uint32_t objNum;
while(!objNumQueue.empty())
{
objNum = objNumQueue.front();
objNumQueue.pop();
//update objects
}
return result;
}
}