aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-05-04 10:35:37 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2017-05-04 09:12:34 +0000
commit365d43a22050a4ea69e36b8d1033bf6ab3189264 (patch)
tree8212b8ebac052c7b19bff8e7923090d45c6b0655
parenta69edf01cb0a2a06282dc7b89724ffa542f6546d (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>
-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 5cb0f2f44b..7488d613e5 100644
--- a/tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp
+++ b/tests/benchmarks/qml/js/qjsvalue/tst_qjsvalue.cpp
@@ -943,7 +943,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