-
Bug
-
Resolution: Fixed
-
P1: Critical
-
6.9.2, 6.9.3
-
-
95ed95f54 (dev), bbd52e5d7 (6.10)
If running the following example I it crashes with a nullpointer exception, running on my target arm64 target and my amd64 PC:
program
#0 0x00007ffff66a14e4 in QMetaObject::methodOffset() const () from /qt6/lib/libQt6Core.so.6 #1 0x00007ffff66a1e69 in QMetaObject::method(int) const () from /qt6/lib/libQt6Core.so.6 #2 0x00007ffff7c30044 in QQmlPrivate::callQObjectMethod(QV4::ExecutionEngine*, QV4::Lookup*, QObject*, void**, int) () from /qt6/lib/libQt6Qml.so.6 #3 0x00007ffff7c30e25 in QQmlPrivate::AOTCompiledContext::callObjectPropertyLookup(unsigned int, QObject*, void**, int) const () from /qt6/lib/libQt6Qml.so.6 #4 0x000055555555e72f in QmlCacheGeneratedCode::_qt_qml_app_main_qml::{lambda(QQmlPrivate::AOTCompiledContext const*, void**)#4}::operator()(QQmlPrivate::AOTCompiledContext const*, void**) const::{lambda()#1}::operator()() const () #5 0x000055555555e923 in QmlCacheGeneratedCode::_qt_qml_app_main_qml::{lambda(QQmlPrivate::AOTCompiledContext const*, void**)#4}::operator()(QQmlPrivate::AOTCompiledContext const*, void**) const () #6 0x000055555555eb8d in QmlCacheGeneratedCode::_qt_qml_app_main_qml::{lambda(QQmlPrivate::AOTCompiledContext const*, void**)#4}::_FUN(QQmlPrivate::AOTCompiledContext const*, void**) () #7 0x00007ffff7bfddfd in void QV4::coerceAndCall<AOTCompiledMetaMethod, QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*)::{lambda(void**, int)#1}>(QV4::ExecutionEngine*, AOTCompiledMetaMethod const*, void**, QMetaType const*, int, QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*)::{lambda(void**, int)#1}) () from /qt6/lib/libQt6Qml.so.6 #8 0x00007ffff7c0510f in QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*) () from /qt6/lib/libQt6Qml.so.6 #9 0x00007ffff7b282a3 in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) () from /qt6/lib/libQt6Qml.so.6 #10 0x00007ffff7cbe3f8 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () from /qt6/lib/libQt6Qml.so.6 #11 0x00007ffff7c4f513 in QQmlBoundSignalExpression::evaluate(void**) () from /qt6/lib/libQt6Qml.so.6 #12 0x00007ffff7c4fd20 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () from /qt6/lib/libQt6Qml.so.6 #13 0x00007ffff7cf2b16 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () from /qt6/lib/libQt6Qml.so.6 #14 0x00007ffff7c83d50 in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) () from /qt6/lib/libQt6Qml.so.6 #15 0x00007ffff66f3d23 in void doActivate<false>(QObject*, int, void**) () from /qt6/lib/libQt6Core.so.6 #16 0x00007ffff7cf6620 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) () from /qt6/lib/libQt6Qml.so.6 #17 0x00007ffff7c61521 in QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) () from /qt6/lib/libQt6Qml.so.6 #18 0x00007ffff7c669c6 in QQmlComponentPrivate::completeCreate() () from /qt6/lib/libQt6Qml.so.6 #19 0x00007ffff7c662ec in QQmlComponentPrivate::createWithProperties(QObject*, QMap<QString, QVariant> const&, QQmlContext*, QQmlComponentPrivate::CreateBehavior, bool) () from /qt6/lib/libQt6Qml.so.6 #20 0x00007ffff7c665cd in QQmlComponent::create(QQmlContext*) () from /qt6/lib/libQt6Qml.so.6 #21 0x00007ffff7c3fdbb in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) () from /qt6/lib/libQt6Qml.so.6 #22 0x00007ffff7c40383 in QQmlApplicationEnginePrivate::ensureLoadingFinishes(QQmlComponent*) () from /qt6/lib/libQt6Qml.so.6 #23 0x00007ffff7c40521 in QQmlApplicationEnginePrivate::startLoad(QUrl const&, QByteArray const&, bool) () from /qt6/lib/libQt6Qml.so.6 #24 0x00007ffff7c40840 in QQmlApplicationEngine::load(QUrl const&) () from /qt6/lib/libQt6Qml.so.6 #25 0x000055555555ad48 in main ()
If I run with interpretation it works:
QV4_FORCE_INTERPRETER=1 program qml: Function returns: Hej
If the signal is removed from moduleif.h the crash wont occur either.
- relates to
-
QTBUG-138516 [Reg 6.8 -> 6.9] QML: compiler: methods crash in (nested) QQmlPrivate::callArrowFunction
-
- Closed
-
-
QTBUG-140465 AOT compiled (cachegen) qml crashes program when attempting to call a function on a destroyed context
-
- Closed
-
For Gerrit Dashboard: QTBUG-140738 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
682637,1 | moc: Add "final" type attribute to metatypes.json files | dev | qt/qtbase | Status: NEW | 0 | 0 |
682652,2 | QmlCompiler: Use C++ "final" to prove singletons can't be shadowed | dev | qt/qtdeclarative | Status: NEW | +2 | 0 |