Remove a Q_GLOBAL_STATIC with QMutex in favor of QBasicAtomicInt

Much simpler, no memory allocation, no locking.

Change-Id: Iae839f6a131a4f0784bffffd14a9e70c7b62d9a7
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
bb10
Thiago Macieira 2017-03-08 13:13:12 +01:00 committed by Marc Mutz
parent b21069d6fa
commit f418d1b26a
1 changed files with 2 additions and 6 deletions

View File

@ -50,7 +50,6 @@
#include <qsqlquery.h>
#include <qsocketnotifier.h>
#include <qstringlist.h>
#include <qmutex.h>
#include <QtSql/private/qsqlresult_p.h>
#include <QtSql/private/qsqldriver_p.h>
@ -618,13 +617,10 @@ static QString qCreateParamString(const QVector<QVariant> &boundValues, const QS
return params;
}
Q_GLOBAL_STATIC(QMutex, qMutex)
QString qMakePreparedStmtId()
{
qMutex()->lock();
static unsigned int qPreparedStmtCount = 0;
QString id = QLatin1String("qpsqlpstmt_") + QString::number(++qPreparedStmtCount, 16);
qMutex()->unlock();
static QBasicAtomicInt qPreparedStmtCount = Q_BASIC_ATOMIC_INITIALIZER(0);
QString id = QLatin1String("qpsqlpstmt_") + QString::number(qPreparedStmtCount.fetchAndAddRelaxed(1) + 1, 16);
return id;
}