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

Crash in QQmlObjectCreator::setupBindings

    XMLWordPrintable

Details

    • All
    • 001596d472557bca08eb93159e724301dea88ad6 (qt/qtdeclarative/dev) 83f69cf2913daf801ef85ef59b6324f6de684455 (qt/qtdeclarative/6.1) 4b2eabdf21ff71d557bae36f99cf3998dafe324c (qt/qtdeclarative/6.0)

    Description

      Hi,

      The following snippet crashes in Qt6 (but not in Qt 5.15):

      import QtQuick 2.0
      import QtQuick.Window 2.1
      
      Window {
          component TestPopup: Window {
              visibility: Window.Windowed
          }
          TestPopup { color: "blue" }
      }
      

      With the following stack trace:

      gdb --args ./Work/Qt/6.0.1/gcc_64/bin/qml testwindowvis.qml
      ...
      (gdb) bt
      #0  0x00007ffff7b34769 in QQmlObjectCreator::setupBindings(bool) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #1  0x00007ffff7b30375 in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #2  0x00007ffff7b31d1a in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #3  0x00007ffff7b35c5f in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*, int) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #4  0x00007ffff7b32624 in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #5  0x00007ffff7b34556 in QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #6  0x00007ffff7b34b85 in QQmlObjectCreator::setupBindings(bool) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #7  0x00007ffff7b30375 in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #8  0x00007ffff7b31d1a in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #9  0x00007ffff7b35c5f in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*, int) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #10 0x00007ffff7ac33b0 in QQmlComponentPrivate::beginCreate(QQmlRefPointer<QQmlContextData>) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #11 0x00007ffff7ac3539 in QQmlComponent::beginCreate(QQmlContext*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #12 0x00007ffff7abfaeb in QQmlComponentPrivate::doBeginCreate(QQmlComponent*, QQmlContext*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #13 0x00007ffff7abfb29 in QQmlComponent::create(QQmlContext*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #14 0x00007ffff7ab14a3 in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #15 0x00007ffff7ab1ade in QQmlApplicationEnginePrivate::startLoad(QUrl const&, QByteArray const&, bool) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6
      #16 0x00007ffff7ab1c3c in QQmlApplicationEngine::load(QUrl const&) () at /home/rawoul/Work/Qt/6.0.1/gcc_64/bin/../lib/libQt6Qml.so.6

      Instead a runtime error should be thrown, ie:

      file:///home/rawoul/testwindowvis.qml:6:9: "Window.visibility" is not available in QtQuick 2.0.
      

      Attachments

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

        Activity

          People

            ulherman Ulf Hermann
            rawoul Arnaud Vrac
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes