Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.3.2, 5.4.0 Alpha
-
None
-
OS X 10.8.5
-
-
2b4cda3852cf92fdff3ce4956f8752a99e44cf56
Description
We have been getting crashes with QFileDialog in our application. Debugging shows that sometimes we get a zombie NSBitmapGraphicsContext, and the application is crashing with a stack trace like this:
0 objc_msgSend objc_msgSend 0x7fff898b3250 1 +[NSGraphicsContext currentContextDrawingToScreen] +[NSGraphicsContext currentContextDrawingToScreen] 0x7fff8a0fbdea 2 -[NSView(NSInternal) _ancestorForStartOfDisplayRecursion] -[NSView(NSInternal) _ancestorForStartOfDisplayRecursion] 0x7fff8a12e68a 3 -[NSView displayIfNeeded] -[NSView displayIfNeeded] 0x7fff8a0fb5e1 4 _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints 0x7fff8a0fb1cc 5 __83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke_01208 __83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke_01208 0x7fff8a6c6901 6 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ 0x7fff8d7cb417 7 __CFRunLoopDoObservers __CFRunLoopDoObservers 0x7fff8d7cb381 8 __CFRunLoopRun __CFRunLoopRun 0x7fff8d7a67b8 9 CFRunLoopRunSpecific CFRunLoopRunSpecific 0x7fff8d7a60e2 10 RunCurrentEventLoopInMode RunCurrentEventLoopInMode 0x7fff8bca7eb4 11 ReceiveNextEventCommon ReceiveNextEventCommon 0x7fff8bca7c52 12 BlockUntilNextEventMatchingListInMode BlockUntilNextEventMatchingListInMode 0x7fff8bca7ae3 13 _DPSNextEvent _DPSNextEvent 0x7fff8a0f8533 14 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 0x7fff8a0f7df2 15 -[NSApplication _realDoModalLoop:peek:] -[NSApplication _realDoModalLoop:peek:] 0x7fff8a342659 16 -[NSApplication runModalForWindow:] -[NSApplication runModalForWindow:] 0x7fff8a34291e 17 -[NSSavePanel runModal] -[NSSavePanel runModal] 0x7fff8a58dd46 18 -[QNSOpenSavePanelDelegate runApplicationModalPanel] qcocoafiledialoghelper.mm 256 0x100b2d1dc 19 QCocoaFileDialogHelper::exec() qcocoafiledialoghelper.mm 769 0x100b3193c
The attached project, BadGraphicsContext, shows the problem.
Press the button to open the file dialog.
Make sure it is in the mode that shows the preview area on the right.
Move into another folder and find a file that has a preview.
It will probably crash.