Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.5.0 RC
-
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
For Gerrit Dashboard: QTBUG-46598 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
114157,2 | OSX: check if we have a native drag before accessing it | 5.5.0 | qt/qtbase | Status: MERGED | +2 | 0 |