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

[OS X]Dragging the file proxy icon over a widget causes a crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.5.0
    • 5.5.0 RC
    • GUI: Drag and Drop
    • None
    • OS X 10.10.3 at least

    Description

      click on the file proxy icon in the title bar of a window and drag it across some widget that accepts a drop. The application crashes with this stack trace:

      0	QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::data() const	qscopedpointer.h	135	0x10a190d7c	
      1	QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::pointer qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>> const&)	qglobal.h	983	0x10a1c4c35	
      2	QDrag::d_func() const	qdrag.h	53	0x10a1c4cac	
      3	QDrag::dragCursor(Qt::DropAction) const	qdrag.cpp	336	0x10a1c4ac6	
      4	-[QNSView updateCursorFromDragResponse:drag:]	qnsview.mm	1849	0x11118d349	
      5	-[QNSView handleDrag:]	qnsview.mm	1919	0x11118da13	
      6	-[QNSView draggingEntered:]	qnsview.mm	1893	0x11118d6ee	
      7	NSCoreDragTrackingProc	NSCoreDragTrackingProc		0x7fff8ff19b16	
      8	DoTrackingMessage	DoTrackingMessage		0x7fff9be2d2f0	
      9	SendTrackingMessage	SendTrackingMessage		0x7fff9be2e37b	
      10	DragInApplication	DragInApplication		0x7fff9be2d79c	
      11	CoreDragStartDragging	CoreDragStartDragging		0x7fff9be2c69b	
      12	-[NSCoreDragManager _dragUntilMouseUp:accepted:]	-[NSCoreDragManager _dragUntilMouseUp:accepted:]		0x7fff8ff1878e	
      13	-[NSCoreDragManager dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:]	-[NSCoreDragManager dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:]		0x7fff8ff15477	
      14	-[NSWindow(NSDrag) dragImage:at:offset:event:pasteboard:source:slideBack:]	-[NSWindow(NSDrag) dragImage:at:offset:event:pasteboard:source:slideBack:]		0x7fff8ff14e59	
      15	-[NSDocumentDragButton mouseDragged:]	-[NSDocumentDragButton mouseDragged:]		0x7fff902b1428	
      16	-[NSWindow _reallySendEvent:isDelayedEvent:]	-[NSWindow _reallySendEvent:isDelayedEvent:]		0x7fff9042df12	
      17	-[NSWindow sendEvent:]	-[NSWindow sendEvent:]		0x7fff8fdbfd76	
      18	-[QNSWindow superSendEvent:]	qcocoawindow.mm	244	0x111172229	
      19	-[QNSWindowHelper handleWindowEvent:]	qcocoawindow.mm	136	0x111171729	
      20	-[QNSWindow sendEvent:]	qcocoawindow.mm	239	0x1111721da	
      21	-[NSApplication sendEvent:]	-[NSApplication sendEvent:]		0x7fff8fdbc312	
      22	-[QNSApplication sendEvent:]	qcocoaapplication.mm	175	0x11119bc9d	
      23	-[NSApplication run]	-[NSApplication run]		0x7fff8fce5c68	
      24	QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)	qcocoaeventdispatcher.mm	418	0x111194f53	
      25	QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)	qeventloop.cpp	128	0x10b17df7a	
      26	QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)	qeventloop.cpp	204	0x10b17e18c	
      27	QCoreApplication::exec()	qcoreapplication.cpp	1218	0x10b182e64	
      28	QGuiApplication::exec()	qguiapplication.cpp	1528	0x10a1a8966	
      29	QApplication::exec()	qapplication.cpp	2977	0x109417629	
      30	main	IgorQtMain.cpp	792	0x1027db42c	
      31	start	start		0x7fff954ff5c9	
      32	start	start		0x7fff954ff5c9	
      

      The problem is that the d-pointer is null here:

      QPixmap QDrag::dragCursor(Qt::DropAction action) const
      {
          typedef QMap<Qt::DropAction, QPixmap>::const_iterator Iterator;
      
          Q_D(const QDrag);
      

      That's line 331 of qdrag.cpp.

      This is very much like the crash reported in QTBUG-45907 .

      Attachments

        Activity

          People

            richard Richard Moe Gustavsen
            johnweeks John Weeks
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: