]> Some of my projects - localmylist.git/commitdiff
Revert "Fix possible crash in Database::exec()."
authorAPTX <marek321@gmail.com>
Mon, 15 Apr 2013 19:23:01 +0000 (21:23 +0200)
committerAPTX <marek321@gmail.com>
Mon, 15 Apr 2013 19:23:01 +0000 (21:23 +0200)
This reverts commit 8dbf679930be8c49587ad01131f1ec632c047660.

localmylist/database.cpp

index 83f8a85d0745d6b84838f87864b6962318d13070..aba3988167da6615502ce77d99c78981fe9b3263 100644 (file)
@@ -7,8 +7,6 @@
 #include <QSqlDriver>
 #include <QVariant>
 #include <QThread>
-#include <algorithm>
-
 #include <QDebug>
 
 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())