[Development] QMacCocoaViewContainer changes?

Timur Pocheptsov timur.pocheptsov at qt.io
Fri Feb 17 09:43:44 CET 2017


> I observed some change too. In my case, a NSView, created on the client
> side ("my side"), and inserted inside a Qt hierarchy, is now released
> automatically by Qt.


That's a bug, please, report it.


Best regards,

    Timur.

________________________________
From: Development <development-bounces+timur.pocheptsov=qt.io at qt-project.org> on behalf of Philippe <philwave at gmail.com>
Sent: Friday, February 17, 2017 9:28:28 AM
To: development at qt-project.org
Subject: Re: [Development] QMacCocoaViewContainer changes?

I observed some change too. In my case, a NSView, created on the client
side ("my side"), and inserted inside a Qt hierarchy, is now released
automatically by Qt.
Before, I had to release this NSView "manually". When switching to Qt
5.8, the NSView was released twice (client + Qt sides), causing a crash
in OSX code.

Simply not releasing the NSView on the client side, is enough
(apparently so far), to solve the problem.

I did not report a bug, because this looks more like a behavior change
(not documented), than a bug.

Philippe

On Thu, 16 Feb 2017 23:21:52 +0100
René J.V. Bertin <rjvbertin at gmail.com> wrote:

> 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.
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development


_______________________________________________
Development mailing list
Development at qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20170217/524b9814/attachment.html>


More information about the Development mailing list