summaryrefslogtreecommitdiffstats
path: root/src/testlib/qbenchmarkevent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qbenchmarkevent.cpp')
-rw-r--r--src/testlib/qbenchmarkevent.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/testlib/qbenchmarkevent.cpp b/src/testlib/qbenchmarkevent.cpp
index bbba0ba5d9..f37162ae9d 100644
--- a/src/testlib/qbenchmarkevent.cpp
+++ b/src/testlib/qbenchmarkevent.cpp
@@ -46,8 +46,10 @@
QT_BEGIN_NAMESPACE
-QAbstractEventDispatcher::EventFilter oldEventFilter = 0;
-qint64 QBenchmarkEvent::eventCounter = 0;
+QBenchmarkEvent::QBenchmarkEvent()
+ : eventCounter(0)
+{
+}
QBenchmarkEvent::~QBenchmarkEvent()
{
@@ -55,21 +57,19 @@ QBenchmarkEvent::~QBenchmarkEvent()
void QBenchmarkEvent::start()
{
- QBenchmarkEvent::eventCounter = 0;
- QAbstractEventDispatcher *parent = QAbstractEventDispatcher::instance();
- oldEventFilter = parent->setEventFilter(QBenchmarkEvent::eventCountingMechanism);
+ eventCounter = 0;
+ QAbstractEventDispatcher::instance()->installNativeEventFilter(this);
}
qint64 QBenchmarkEvent::checkpoint()
{
- return QBenchmarkEvent::eventCounter;
+ return eventCounter;
}
qint64 QBenchmarkEvent::stop()
{
- QAbstractEventDispatcher *parent = QAbstractEventDispatcher::instance();
- parent->setEventFilter(oldEventFilter);
- return QBenchmarkEvent::eventCounter;
+ QAbstractEventDispatcher::instance()->removeNativeEventFilter(this);
+ return eventCounter;
}
// It's very tempting to simply reject a measurement if 0 events
@@ -98,10 +98,13 @@ QTest::QBenchmarkMetric QBenchmarkEvent::metricType()
}
// This could be done in a much better way, this is just the beginning.
-bool QBenchmarkEvent::eventCountingMechanism(void *message)
+bool QBenchmarkEvent::nativeEventFilter(const QByteArray &eventType, void *message, long *result)
{
+ Q_UNUSED(eventType);
Q_UNUSED(message);
- QBenchmarkEvent::eventCounter++;
+ Q_UNUSED(result);
+
+ eventCounter++;
return false;
}