diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-03-16 09:27:50 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-03-30 15:12:19 +0000 |
commit | 5c8701aebee5a3e7760926ce8e65655e3cdbf53d (patch) | |
tree | 548cdb3583f73f7708920d4ed2ed97cee2b418ad /tests | |
parent | c0220acd71f547f27e50b96bc8fe5f115fd4d9a1 (diff) |
tst_qguimetatype: Avoid deprecated methods
This makes the 5.15 and 6.x branches more comparable, as in 6.0 the
preferred way is to use the non-static methods (which avoids an
expensive lookup in 6.x).
As a drive-by, Avoid memory leaks if the test fails.
Change-Id: I95b133342a4ea19dd23c235a408f38089706412b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
(cherry picked from commit a7f24218e3795aa54effc2665e0a505c02b10382)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp b/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp index 6568307461..8eca4b71d0 100644 --- a/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp +++ b/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp @@ -28,6 +28,7 @@ #include <qtest.h> #include <QtCore/qmetatype.h> +#include <QScopeGuard> class tst_QGuiMetaType : public QObject { @@ -62,17 +63,20 @@ void tst_QGuiMetaType::constructInPlace_data() void tst_QGuiMetaType::constructInPlace() { QFETCH(int, typeId); - int size = QMetaType::sizeOf(typeId); + QMetaType type(typeId); + int size = type.sizeOf(); void *storage = qMallocAligned(size, 2 * sizeof(qlonglong)); - QCOMPARE(QMetaType::construct(typeId, storage, /*copy=*/0), storage); - QMetaType::destruct(typeId, storage); + auto cleanUp = qScopeGuard([&]() { + qFreeAligned(storage); + }); + QCOMPARE(type.construct(storage, /*copy=*/0), storage); + type.destruct(storage); QBENCHMARK { for (int i = 0; i < 100000; ++i) { - QMetaType::construct(typeId, storage, /*copy=*/0); - QMetaType::destruct(typeId, storage); + type.construct(storage, /*copy=*/0); + type.destruct(storage); } } - qFreeAligned(storage); } void tst_QGuiMetaType::constructInPlaceCopy_data() @@ -83,19 +87,22 @@ void tst_QGuiMetaType::constructInPlaceCopy_data() void tst_QGuiMetaType::constructInPlaceCopy() { QFETCH(int, typeId); - int size = QMetaType::sizeOf(typeId); + QMetaType type(typeId); + int size = type.sizeOf(); void *storage = qMallocAligned(size, 2 * sizeof(qlonglong)); - void *other = QMetaType::create(typeId); - QCOMPARE(QMetaType::construct(typeId, storage, other), storage); - QMetaType::destruct(typeId, storage); + void *other = type.create(); + auto cleanUp = qScopeGuard([&]() { + type.destroy(other); + qFreeAligned(storage); + }); + QCOMPARE(type.construct(storage, other), storage); + type.destruct(storage); QBENCHMARK { for (int i = 0; i < 100000; ++i) { - QMetaType::construct(typeId, storage, other); - QMetaType::destruct(typeId, storage); + type.construct(storage, other); + type.destruct(storage); } } - QMetaType::destroy(typeId, other); - qFreeAligned(storage); } QTEST_MAIN(tst_QGuiMetaType) |