Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-67423

Calling scope/context property as constructor triggers failing assertion

    XMLWordPrintable

Details

    Description

      // code placeholder
      

      I have crash after start attached example (please check attached file qmlcrash_594.tgz)

      How to reproduce.

      1. Untar qmlcrash_594.tgz
      2. start command: qmlscene test.qml

      I have following issue for debug version (in release I had crash)

      ASSERT: "value.isString()" in file jsruntime/qv4runtime.cpp, line 464

      Call stack:

      #0 0x00007ffff57fb428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
      #1 0x00007ffff57fd02a in __GI_abort () at abort.c:89
      #2 0x00007ffff62b5ced in qt_message_fatal (context=..., message="ASSERT: \"value.isString()\" in file jsruntime/qv4runtime.cpp, line 464") at global/qlogging.cpp:1690
      #3 0x00007ffff62b67ba in QMessageLogger::fatal (this=this@entry=0x7fffffffae00, msg=msg@entry=0x7ffff6595bd0 "ASSERT: \"%s\" in file %s, line %d")
      at global/qlogging.cpp:796
      #4 0x00007ffff62afb36 in qt_assert (assertion=assertion@entry=0x7ffff6bae595 "value.isString()", file=file@entry=0x7ffff6bae52f "jsruntime/qv4runtime.cpp",
      line=line@entry=464) at global/qglobal.cpp:3080
      #5 0x00007ffff6a80dd1 in QV4::RuntimeHelpers::convertToObject (engine=engine@entry=0x5b1be0, value=...) at jsruntime/qv4runtime.cpp:464
      #6 0x00007ffff6a871e6 in QV4::Value::toObject (this=this@entry=0x7fffe3801588, e=e@entry=0x5b1be0) at jsruntime/qv4value.cpp:315
      #7 0x00007ffff6a7e328 in QV4::Runtime::method_constructProperty (engine=engine@entry=0x5b1be0, nameIndex=10, callData=0x7fffe3801580) at jsruntime/qv4runtime.cpp:1206
      #8 0x00007ffff6a75864 in QV4::Moth::VME::run (this=this@entry=0x7fffffffafef, engine=engine@entry=0x5b1be0, code=0x7fffe4047c08 "\006", code@entry=0x7fffe4047988 "\035")
      at jsruntime/qv4vme_moth.cpp:754
      #9 0x00007ffff6a76e27 in QV4::Moth::VME::exec (engine=0x5b1be0, code=0x7fffe4047988 "\035") at jsruntime/qv4vme_moth.cpp:962

      #10 0x00007ffff69c7aea in QV4::ExecutionContext::simpleCall (this=0x7fffe3801508, scope=..., callData=callData@entry=0x7fffe38014a0, function=0x600580)
      at jsruntime/qv4context.cpp:347
      #11 0x00007ffff69f1e4e in QV4::ScriptFunction::call (that=0x7fffe38014f8, scope=..., callData=0x7fffe38014a0) at jsruntime/qv4functionobject.cpp:415
      #12 0x00007ffff6a83da2 in QV4::Object::call (d=0x7fffe38014a0, scope=..., this=<optimized out>) at jsruntime/qv4object_p.h:372
      #13 QV4::Runtime::method_callActivationProperty (engine=engine@entry=0x5b1be0, nameIndex=<optimized out>, callData=0x7fffe38014a0) at jsruntime/qv4runtime.cpp:1052
      #14 0x00007ffff6a74efc in QV4::Moth::VME::run (this=this@entry=0x7fffffffb2df, engine=engine@entry=0x5b1be0, code=0x7fffe40469b0 "", code@entry=0x7fffe4046818 "\035")
      at jsruntime/qv4vme_moth.cpp:633
      #15 0x00007ffff6a76e27 in QV4::Moth::VME::exec (engine=0x5b1be0, code=0x7fffe4046818 "\035") at jsruntime/qv4vme_moth.cpp:962
      #16 0x00007ffff69c7aea in QV4::ExecutionContext::simpleCall (this=0x7fffe3801448, scope=..., callData=callData@entry=0x7fffe38013e0, function=0x6002d0)
      at jsruntime/qv4context.cpp:347
      #17 0x00007ffff69f1e4e in QV4::ScriptFunction::call (that=0x7fffe3801438, scope=..., callData=0x7fffe38013e0) at jsruntime/qv4functionobject.cpp:415
      #18 0x00007ffff6a83da2 in QV4::Object::call (d=0x7fffe38013e0, scope=..., this=<optimized out>) at jsruntime/qv4object_p.h:372
      #19 QV4::Runtime::method_callActivationProperty (engine=engine@entry=0x5b1be0, nameIndex=<optimized out>, callData=0x7fffe38013e0) at jsruntime/qv4runtime.cpp:1052

      #20 0x00007ffff6a74efc in QV4::Moth::VME::run (this=this@entry=0x7fffffffb5cf, engine=engine@entry=0x5b1be0, code=0x7fffe40487c8 "\006", code@entry=0x7fffe4048548 "\035")
      at jsruntime/qv4vme_moth.cpp:633
      #21 0x00007ffff6a76e27 in QV4::Moth::VME::exec (engine=0x5b1be0, code=0x7fffe4048548 "\035") at jsruntime/qv4vme_moth.cpp:962
      #22 0x00007ffff69c7aea in QV4::ExecutionContext::simpleCall (this=0x7ffff7fd8070, scope=..., callData=callData@entry=0x7fffe3801328, function=function@entry=0x6008d0)
      at jsruntime/qv4context.cpp:347
      #23 0x00007ffff6b2e2d9 in QQmlJavaScriptExpression::evaluate (this=this@entry=0x60b690, callData=callData@entry=0x7fffe3801328, isUndefined=isUndefined@entry=0x0,
      scope=...) at qml/qqmljavascriptexpression.cpp:223
      #24 0x00007ffff6abb087 in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=a@entry=0x0) at qml/qqmlboundsignal.cpp:223
      #25 0x00007ffff6abb9fa in QQmlBoundSignal_callback (e=0x6638d0, a=0x0) at qml/qqmlboundsignal.cpp:355
      #26 0x00007ffff6b02dc8 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=a@entry=0x0) at qml/qqmlnotifier.cpp:106
      #27 0x00007ffff6a95f4c in QQmlData::signalEmitted (object=0x666310, index=3, a=0x0) at qml/qqmlengine.cpp:854
      #28 0x00007ffff64d1a73 in QMetaObject::activate (sender=sender@entry=0x666310, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,

      #27 0x00007ffff6a95f4c in QQmlData::signalEmitted (object=0x666310, index=3, a=0x0) at qml/qqmlengine.cpp:854
      #28 0x00007ffff64d1a73 in QMetaObject::activate (sender=sender@entry=0x666310, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,
      argv=argv@entry=0x0) at kernel/qobject.cpp:3645
      #29 0x00007ffff64d23a1 in QMetaObject::activate (sender=sender@entry=0x666310, m=m@entry=0x7ffff6c9a8a0 <QQmlComponentAttached::staticMetaObject>,
      local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3629
      #30 0x00007ffff6ba963a in QQmlComponentAttached::completed (this=this@entry=0x666310) at .moc/moc_qqmlcomponentattached_p.cpp:138
      #31 0x00007ffff6b491be in QQmlObjectCreator::finalize (this=0x5d5590, interrupt=...) at qml/qqmlobjectcreator.cpp:1335
      #32 0x00007ffff6aad661 in QQmlComponentPrivate::complete (enginePriv=0x5b12d0, state=state@entry=0x5fdf50) at qml/qqmlcomponent.cpp:920
      #33 0x00007ffff6aad785 in QQmlComponentPrivate::completeCreate (this=0x5fdeb0) at qml/qqmlcomponent.cpp:956
      #34 0x00007ffff6aad833 in QQmlComponent::completeCreate (this=<optimized out>) at qml/qqmlcomponent.cpp:949
      #35 0x00007ffff6aad5b6 in QQmlComponent::create (this=0x5fde90, context=<optimized out>) at qml/qqmlcomponent.cpp:775
      #36 0x0000000000408492 in main (argc=2, argv=0x7fffffffd838) at main.cpp:578

      As I checked issue occurs when "dataFmt" try to construct. Please check "test.qml:37,39"

      Attachments

        For Gerrit Dashboard: QTBUG-67423
        # Subject Branch Project Status CR V

        Activity

          People

            shausman Simon Hausmann
            valery Valery Volgutov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes