[Development] QMacCocoaViewContainer changes?

René J.V. Bertin rjvbertin at gmail.com
Thu Feb 16 23:21:52 CET 2017


Hello,

Has anything changed in Qt 5.8.0 with the way the QMacCocoaViewContainer class has to be used? I observe the following after updating from 5.7.1 to 5.8.0 :

- Qt Designer crashes when I have Phonon 4.9.x installed with the phonon-backend-vlc git/master backend (https://cgit.kde.org/phonon-vlc.git/). 
- the QMacCocoaViewContainer ctor now also calls QMacCocoaViewContainer::setCocoaView() when a NULL NSView pointer is given.
- the QMacCocoaViewContainer example no longer releases the native view after passing it to setCocoaView(), despite what the documentation says, and despite the fact that setCocoaView indeed does a retain. Not releasing the VideoView instance in phonon-vlc's VlcMacWidget ctor also prevents the Designer crash but theoretically means the instance is being leaked.

The Designer crash is preceded by the terminal output below and occurs in ~QMacCocoaViewContainer(), when doing [nsview release]. This means it's doing one release too many, as confirmed by the malloc error.
qt.qpa.cocoa.window: NSView is not QNSView, consider checking for Qt::ForeignWindow
qt.qpa.cocoa.window: NSView is not QNSView, consider checking for Qt::ForeignWindow
Designer(97879,0x7fff721fd310) malloc: *** error for object 0x7fc7cf2a3300: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug


Thanks,
R.



More information about the Development mailing list