Move QScopedLoopLevelCounter to qthread_p.h
... and use it in QCoreApplication::notifyInterna() instead of "reinventing" the wheel there. The constructor and destructor for QScopedLoopLevelCounter are inline, so the class does not need to be exported. Change-Id: I7af5a4ef0987f277bcc50c1057f3c74152f3d79d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This commit is contained in:
parent
90b67743d1
commit
722cbfe738
@ -809,16 +809,7 @@ bool QCoreApplication::notifyInternal(QObject *receiver, QEvent *event)
|
||||
// call overhead.
|
||||
QObjectPrivate *d = receiver->d_func();
|
||||
QThreadData *threadData = d->threadData;
|
||||
|
||||
// Exception-safety without try/catch
|
||||
struct Incrementer {
|
||||
int &variable;
|
||||
inline Incrementer(int &variable) : variable(variable)
|
||||
{ ++variable; }
|
||||
inline ~Incrementer()
|
||||
{ --variable; }
|
||||
};
|
||||
Incrementer inc(threadData->loopLevel);
|
||||
QScopedLoopLevelCounter loopLevelCounter(threadData);
|
||||
|
||||
#ifdef QT_JAMBI_BUILD
|
||||
int deleteWatch = 0;
|
||||
|
@ -227,6 +227,17 @@ public:
|
||||
bool isAdopted;
|
||||
};
|
||||
|
||||
class QScopedLoopLevelCounter
|
||||
{
|
||||
QThreadData *threadData;
|
||||
public:
|
||||
inline QScopedLoopLevelCounter(QThreadData *threadData)
|
||||
: threadData(threadData)
|
||||
{ ++threadData->loopLevel; }
|
||||
inline ~QScopedLoopLevelCounter()
|
||||
{ --threadData->loopLevel; }
|
||||
};
|
||||
|
||||
// thread wrapper for the main() thread
|
||||
class QAdoptedThread : public QThread
|
||||
{
|
||||
|
@ -68,7 +68,6 @@
|
||||
#include "QtCore/qhash.h"
|
||||
#include "QtCore/qpointer.h"
|
||||
#include "private/qcoreapplication_p.h"
|
||||
#include <private/qthread_p.h>
|
||||
#include "QtCore/qpoint.h"
|
||||
#include <QTime>
|
||||
#include <QWindowSystemInterface>
|
||||
@ -263,17 +262,6 @@ typedef struct tagGESTURECONFIG
|
||||
|
||||
#endif // Q_WS_WIN
|
||||
|
||||
class QScopedLoopLevelCounter
|
||||
{
|
||||
QThreadData *threadData;
|
||||
public:
|
||||
QScopedLoopLevelCounter(QThreadData *threadData)
|
||||
: threadData(threadData)
|
||||
{ ++threadData->loopLevel; }
|
||||
~QScopedLoopLevelCounter()
|
||||
{ --threadData->loopLevel; }
|
||||
};
|
||||
|
||||
struct FontHash : public QHash<QByteArray, QFont>
|
||||
{
|
||||
FontHash();
|
||||
|
Loading…
Reference in New Issue
Block a user