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

QQuickWidget deleteLater crashes when removed from QMdiArea

    XMLWordPrintable

Details

    • 0b0bb319578bb2e2eced3a80ce3876a4408b72a7 (qtdeclarative/dev, 29.7.2014)

    Description

      Deleting QQuickWidget cause crash after it's removed from the QMdiArea.

      QQuickWidget *view = new QQuickWidget;
      mdiarea->addSubWindow(view);
      ...
      mdiarea->removeSubWindow(subWindow);
      subWindow->deleteLater();  // CRASH when subWindow cointains quickwidget
      

      Same works without crash for QWidget. QMdiArea::removeSubWindow() documentation says it just set parent to 0 (like it does) but doesn't delete given widget so it has to do. But something goes wrong there with QuickWidget.

      Actually simple subWindow->deleteLater() removes subWindow from the mdiarea so when need to delete just delete without removeSubWindow().

      Other thing saw is that it's not possible to remove and add back QuickWidget SubWindow to mdiarea. This might be the root cause. Got ASSERT

      ASSERT failure in QSGRenderContext::initialize: "already initialized!", file scenegraph\qsgcontext.cpp, line 439
      

      Attachments

        1. QTBUG-40435.zip
          2 kB
        2. qtbug40435_valgrind.txt
          35 kB
        3. qtbug40435_stack.txt
          17 kB
        4. QTBUG-40435_mod.zip
          2 kB
        5. qtbug40435_mod_stack.txt
          17 kB
        6. qtbug40435_mod_stack.tasks
          5 kB

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              lagocs Laszlo Agocs
              qtcomsupport Qt Support
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: