diff options
author | Erik Verbruggen <erik.verbruggen@qt.io> | 2017-05-04 10:35:37 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-05-09 08:41:49 +0000 |
commit | babfbe2de2a325f21354febec80def032f2f6865 (patch) | |
tree | 4a8a8b9efdb07dfc84878546bad659c32256a0fe | |
parent | d6f57328136197b3b231225fd1a248a7703f102a (diff) |
Fix a QJSValue benchmark
The benchmark added the tst_QJSValue instance driving the benchmark to
the engine, which then takes over ownership. This would result in a
use-after-free, leading to a crash.
Change-Id: I524445487a1dabb3fb3fbbfb7fca084f7736c124
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
(cherry picked from commit 365d43a22050a4ea69e36b8d1033bf6ab3189264)
-rw-r--r-- | tests/benchmarks/qml/js/js.pro | 2 | ||||
-rw-r--r-- | tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/tests/benchmarks/qml/js/js.pro b/tests/benchmarks/qml/js/js.pro index 7711e7130d..b1448d8eb8 100644 --- a/tests/benchmarks/qml/js/js.pro +++ b/tests/benchmarks/qml/js/js.pro @@ -1,7 +1,7 @@ TEMPLATE = subdirs SUBDIRS = \ qjsengine \ -# qjsvalue \ ### FIXME: doesn't build + qjsvalue \ qjsvalueiterator \ TRUSTED_BENCHMARKS += \ diff --git a/tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp b/tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp index e8bcda2534..6b01282ac6 100644 --- a/tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp +++ b/tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp @@ -948,7 +948,7 @@ void tst_QJSValue::defineStandardTestValues() QTest::newRow("regexp") << m_engine->evaluate("new RegExp('foo')"); QTest::newRow("error") << m_engine->evaluate("new Error"); - QTest::newRow("qobject") << m_engine->newQObject(this); + QTest::newRow("qobject") << m_engine->newQObject(new QObject); #if 0 // no qmetaobject QTest::newRow("qmetaobject") << m_engine->newQMetaObject(&QJSEngine::staticMetaObject); #endif |