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

Using attached Drag property crashes on iOS

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.5.0
    • 5.4.1
    • None
    • iOS 8.2 (12D508), Qt 5.4.1
    • iOS/tvOS/watchOS

    Description

      Using attached Drag properties will crash on iOS device in QOpenGL2PainEngineEx using the following QML;

      import QtQuick 2.4
      import QtQuick.Window 2.2
      
      Window {
          visible: true
      
          Rectangle {
              id: draggable
              color: "red"
              width: 100; height: 50
              Drag.dragType: Drag.Automatic
              Drag.active: dragArea.drag.active
              Text {
                  anchors.centerIn: parent
                  text: "drag me"
              }
          }
      
          MouseArea {
              id: dragArea
              drag.target: draggable
              anchors.fill: draggable
          }
      
          Rectangle {
              color: dropArea.containsDrag ? "green" : "blue"
              x: 100; y: 100; width: 100; height: 50
              DropArea {
                  id: dropArea
                  anchors.fill: parent
              }
              Text {
                  anchors.centerIn: parent;
                  text: "here"
              }
          }
      }
      

      backtrace;

      #0	0x00000001005d3d44 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data() const at /work/build/qt5_workdir/w/s/qtbase/src/gui/../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:135
      #1	0x000000010061ce10 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::pointer qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > >(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) at /work/build/qt5_workdir/w/s/qtbase/src/gui/../../include/QtCore/../../src/corelib/global/qglobal.h:961
      #2	0x000000010061d074 in QOpenGLContext::d_func() at /work/build/qt5_workdir/w/s/qtbase/src/gui/../../include/QtGui/../../src/gui/kernel/qopenglcontext.h:141
      #3	0x00000001008c19c0 in QOpenGL2PaintEngineEx::begin(QPaintDevice*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/opengl/qopenglpaintengine.cpp:2074
      #4	0x000000010082f1c0 in QPainter::begin(QPaintDevice*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/painting/qpainter.cpp:1808
      #5	0x000000010082e8f8 in QPainter::QPainter(QPaintDevice*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/painting/qpainter.cpp:1471
      #6	0x000000010082b700 in QPainter::QPainter(QPaintDevice*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/painting/qpainter.cpp:1474
      #7	0x00000001005bc308 in QShapedPixmapWindow::render() at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qshapedpixmapdndwindow.cpp:70
      #8	0x00000001005bc56c in QShapedPixmapWindow::exposeEvent(QExposeEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qshapedpixmapdndwindow.cpp:103
      #9	0x00000001005dad64 in QWindow::event(QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qwindow.cpp:2025
      #10	0x0000000100fee8f8 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:1052
      #11	0x0000000100fee85c in QCoreApplication::notify(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:997
      #12	0x00000001005c2dfc in QGuiApplication::notify(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:1528
      #13	0x0000000100fee6f4 in QCoreApplication::notifyInternal(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:935
      #14	0x00000001005cc568 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
      #15	0x00000001005c6efc in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:2610
      #16	0x00000001005c31fc in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:1635
      #17	0x00000001005b219c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:572
      #18	0x00000001005b17b8 in QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:556
      #19	0x00000001000c3f24 in -[QUIView sendUpdatedExposeEvent] at /work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/quiview.mm:183
      #20	0x00000001000c3be4 in -[QUIView displayLayer:] at /work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/quiview.mm:166
      #21	0x000000018ad7ad88 in CA::Layer::display() ()
      #22	0x000000018ad5c570 in CA::Layer::display_if_needed(CA::Transaction*) ()
      #23	0x000000018ad5c228 in CA::Layer::layout_and_display_if_needed(CA::Transaction*) ()
      #24	0x000000018ad5ba14 in CA::Context::commit_transaction(CA::Transaction*) ()
      #25	0x000000018ad5b798 in CA::Transaction::commit() ()
      #26	0x000000018ad551c8 in CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) ()
      #27	0x0000000186bbad98 in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
      #28	0x0000000186bb7d24 in __CFRunLoopDoObservers ()
      #29	0x0000000186bb8104 in __CFRunLoopRun ()
      #30	0x0000000186ae51f4 in CFRunLoopRunSpecific ()
      #31	0x00000001000d6dbc in QEventDispatcherCoreFoundation::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /work/build/qt5_workdir/w/s/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm:275
      #32	0x00000001000b11e8 in QIOSEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioseventdispatcher.mm:479
      #33	0x0000000100feb09c in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qeventloop.cpp:128
      #34	0x0000000100feb2dc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qeventloop.cpp:204
      #35	0x00000001005bccb4 in QBasicDrag::drag(QDrag*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qsimpledrag.cpp:177
      #36	0x00000001005e24e8 in QDragManager::drag(QDrag*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qdnd.cpp:135
      #37	0x00000001005e176c in QDrag::exec(QFlags<Qt::DropAction>, Qt::DropAction) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qdrag.cpp:274
      #38	0x00000001005e15e8 in QDrag::exec(QFlags<Qt::DropAction>) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qdrag.cpp:230
      #39	0x00000001004d2798 in QQuickDragAttachedPrivate::startDrag(QFlags<Qt::DropAction>) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickdrag.cpp:725
      #40	0x00000001004d239c in QQuickDragAttached::setActive(bool) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickdrag.cpp:305
      #41	0x0000000100596fc0 in QQuickDragAttached::qt_metacall(QMetaObject::Call, int, void**) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/.moc/iphoneos-debug/moc_qquickdrag_p.cpp:753
      #42	0x0000000100ff62a0 in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qmetaobject.cpp:295
      #43	0x0000000100b7a278 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlproperty.cpp:1309
      #44	0x0000000100b79c78 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlproperty.cpp:1238
      #45	0x0000000100b7c2c0 in QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlproperty.cpp:1571
      #46	0x0000000100c23660 in QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlbinding.cpp:223
      #47	0x0000000100c72ac4 in QQmlBinding::update() at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/../../include/QtQml/5.4.1/QtQml/private/../../../../../src/qml/qml/qqmlbinding_p.h:97
      #48	0x0000000100c23d20 in QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlbinding.cpp:285
      #49	0x0000000100c18fb8 in QQmlJavaScriptExpressionGuard_callback(QQmlNotifierEndpoint*, void**) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:363
      #50	0x0000000100bf5868 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:73
      #51	0x0000000100b5349c in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) at /work/build/qt5_workdir/w/s/qtdeclarative/src/qml/qml/qqmlengine.cpp:715
      #52	0x00000001010382bc in QMetaObject::activate(QObject*, int, int, void**) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qobject.cpp:3602
      #53	0x0000000101038180 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qobject.cpp:3582
      #54	0x0000000100595cd8 in QQuickDrag::activeChanged() at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/.moc/iphoneos-debug/moc_qquickdrag_p.cpp:444
      #55	0x00000001004d3b98 in QQuickDrag::setActive(bool) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickdrag.cpp:922
      #56	0x0000000100472754 in QQuickMouseArea::mouseMoveEvent(QMouseEvent*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickmousearea.cpp:688
      #57	0x00000001003a602c in QQuickItem::event(QEvent*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickitem.cpp:7274
      #58	0x0000000100fee8f8 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:1052
      #59	0x0000000100fee85c in QCoreApplication::notify(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:997
      #60	0x00000001005c2dfc in QGuiApplication::notify(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:1528
      #61	0x0000000100fee6f4 in QCoreApplication::notifyInternal(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:935
      #62	0x00000001005cb1a8 in QCoreApplication::sendEvent(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
      #63	0x00000001003b6548 in QQuickWindowPrivate::translateTouchToMouse(QQuickItem*, QTouchEvent*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickwindow.cpp:593
      #64	0x00000001003bd724 in QQuickWindowPrivate::deliverMatchingPointsToItem(QQuickItem*, QTouchEvent*, QSet<int>*, QSet<int> const&, QList<QTouchEvent::TouchPoint> const&, QSet<QQuickItem*>*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickwindow.cpp:2048
      #65	0x00000001003bd310 in QQuickWindowPrivate::deliverTouchPoints(QQuickItem*, QTouchEvent*, QList<QTouchEvent::TouchPoint> const&, QSet<int>*, QHash<QQuickItem*, QList<QTouchEvent::TouchPoint> >*, QSet<QQuickItem*>*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickwindow.cpp:2006
      #66	0x00000001003bcfc8 in QQuickWindowPrivate::deliverTouchPoints(QQuickItem*, QTouchEvent*, QList<QTouchEvent::TouchPoint> const&, QSet<int>*, QHash<QQuickItem*, QList<QTouchEvent::TouchPoint> >*, QSet<QQuickItem*>*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickwindow.cpp:1956
      #67	0x00000001003bcb2c in QQuickWindowPrivate::reallyDeliverTouchEvent(QTouchEvent*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickwindow.cpp:1911
      #68	0x00000001003bcd8c in QQuickWindowPrivate::flushDelayedTouchEvent() at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/items/qquickwindow.cpp:1860
      #69	0x0000000100381244 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1089
      #70	0x0000000100382460 in QSGThreadedRenderLoop::event(QEvent*) at /work/build/qt5_workdir/w/s/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1190
      #71	0x0000000100fee8f8 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:1052
      #72	0x0000000100fee85c in QCoreApplication::notify(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:997
      #73	0x00000001005c2dfc in QGuiApplication::notify(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:1528
      #74	0x0000000100fee6f4 in QCoreApplication::notifyInternal(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:935
      #75	0x00000001005cb1a8 in QCoreApplication::sendEvent(QObject*, QEvent*) at /work/build/qt5_workdir/w/s/qtbase/src/gui/../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
      #76	0x000000010107bd7c in QTimerInfoList::activateTimers() at /work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:635
      #77	0x00000001000d7660 in QEventDispatcherCoreFoundation::processTimers(__CFRunLoopTimer*) at /work/build/qt5_workdir/w/s/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm:422
      #78	0x00000001000d7e14 in ___ZN30QEventDispatcherCoreFoundation12updateTimersEv_block_invoke at /work/build/qt5_workdir/w/s/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm:598
      #79	0x0000000186bbac20 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()
      #80	0x0000000186bba8d0 in __CFRunLoopDoTimer ()
      #81	0x0000000186bb831c in __CFRunLoopRun ()
      #82	0x0000000186ae51f4 in CFRunLoopRunSpecific ()
      #83	0x000000018ff076fc in GSEventRunModal ()
      #84	0x000000018b47610c in UIApplicationMain ()
      #85	0x00000001000b14c8 in main at /work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioseventdispatcher.mm:232
      #86	0x000000019825ea08 in start ()
      

      Attachments

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

        Activity

          People

            richard Richard Moe Gustavsen
            henrikhartz Henrik Hartz
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes