aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-05-04 10:35:37 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2017-05-09 08:41:49 +0000
commitbabfbe2de2a325f21354febec80def032f2f6865 (patch)
tree4a8a8b9efdb07dfc84878546bad659c32256a0fe
parentd6f57328136197b3b231225fd1a248a7703f102a (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.pro2
-rw-r--r--tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp2
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