Russian Qt Forum

Qt => Вопросы новичков => Тема начата: NeCoder от Февраль 22, 2018, 16:50



Название: QSqlQueryModel - утечет ли память
Отправлено: NeCoder от Февраль 22, 2018, 16:50
Есть такая функция. Статичный анализатор Clang ругается на потенциальную утечку памяти, мол создаешь sqlModel но нигде не удаляешь. Стоит ли волноваться? setcombo_static вызываю единожды в конструкторе.

Код:
void dbwindow::setcombo_static(QSqlDatabase &db_model, QComboBox *combo, QString row, bool installEF)
{
    QSqlQueryModel *sqlModel=new QSqlQueryModel(this);
    QSqlQuery query(db_model);
    if(query.exec("SELECT DISTINCT "+row+" FROM " + db_model.connectionName() + " WHERE "+row+"<>'';"))
    {
        sqlModel->setQuery(query);

        QSortFilterProxyModel *sort = new QSortFilterProxyModel(this);
        sort->setSourceModel(sqlModel);
        sort->setSortLocaleAware(true);
        sort->sort(0);

        combo->setModel(sort);
        combo->setCurrentIndex(-1);
    }

    if(installEF!=false) combo->installEventFilter(this);

    return;
}


Название: Re: QSqlQueryModel - утечет ли память
Отправлено: Apktyc от Февраль 22, 2018, 16:57
Так сделайте delete sqlModel в деструкторе, не заставляйте Clang волноваться.  :D


Название: Re: QSqlQueryModel - утечет ли память
Отправлено: NeCoder от Февраль 22, 2018, 17:02
Так сделайте delete sqlModel в деструкторе, не заставляйте Clang волноваться.  :D

Это он меня заставляет волноваться а не я его  ;D
В том и вопрос - удалится ли sqlModel (а так же sort, который я так же создаю) сам?

Не пинайте, только начинаю.