From: APTX Date: Mon, 15 Apr 2013 19:23:01 +0000 (+0200) Subject: Revert "Fix possible crash in Database::exec()." X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=9d95874a016d5bb6668537161b62f9ae6dde6980;p=localmylist.git Revert "Fix possible crash in Database::exec()." This reverts commit 8dbf679930be8c49587ad01131f1ec632c047660. --- diff --git a/localmylist/database.cpp b/localmylist/database.cpp index 83f8a85..aba3988 100644 --- a/localmylist/database.cpp +++ b/localmylist/database.cpp @@ -7,8 +7,6 @@ #include #include #include -#include - #include namespace LocalMyList { @@ -1703,22 +1701,13 @@ bool Database::exec(QSqlQuery &query) { Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread"); - if (!isConnected()) + if (!d->db.isOpen()) { - auto keyIt = std::find_if(d->preparedQueries.constBegin(), d->preparedQueries.constEnd(), - [&](const QSqlQuery &a) { return &a == &query;}); - - Q_ASSERT(keyIt != d->preparedQueries.constEnd()); - - auto key = keyIt.key(); - auto values = query.boundValues(); - - query = prepare(key); - - for (auto it = values.constBegin(); it != values.constEnd(); ++it) - query.bindValue(it.key(), it.value()); + disconnect(); + if (!connect()) + return false; - return retryExec(query, false); + return retryExec(query, true); } if (!query.exec()) @@ -1730,7 +1719,7 @@ bool Database::exec(const QString &sql) { Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread"); - if (!isConnected()) + if (!d->db.isOpen()) { disconnect(); if (!connect())