1

executeAndWait を呼び出して応答が返されたときに、ヒープで 76KB のメモリが増加していることがわかります。なぜそれが起こるのかわかりません。このメモリを消去するにはどうすればよいですか? db との接続の作成は次のとおりです。

bool DBHelper::checkConnection(bool isAsynch)
{
    if(sqlConnector && dbFile->exists())
    {
        return true;
    }
    if (dbFile->exists())
    {
    sqlConnector = new SqlConnection(dbPath, "connect");
    connect(sqlConnector, SIGNAL(reply(const bb::data::DataAccessReply&)), this,
            SLOT(onLoadAsyncResultData(const bb::data::DataAccessReply&)));
    return true;
    }    
    return false;
}

executeAndWait への呼び出しはこの関数にあります。

void DBHelper::execute (const QVariant &criteria,int id,bool isAsynch)
{
    if (checkConnection(isAsynch))
    {
        if(!isAsynch)
        {
            DataAccessReply reply= sqlConnector->executeAndWait(criteria, id); // memory leak happens when the reply is found.
        this->onLoadSynchResultData(reply);
        }

    }
}

ドキュメントのリンクはここにあります。

ありがとう。

4

1 に答える 1