diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-06-08 23:03:36 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-06-25 19:58:32 +0000 |
commit | 122a9512fc2e22ace1caf897d9b99ae5a26e9907 (patch) | |
tree | e33c67953cc1983ac1a1acd99537963d837a8bdc /src/plugins | |
parent | 43f2244581bd739a61c07eb318261e28b2792650 (diff) |
macOS: Add a few more local autorelease pools to QCocoaGLContext
Prevents buildup of autoreleased NSViews (drawables) in the outer pool
of the main runloop, which may not drain as often as we wish.
Change-Id: Ifcf7317c50ec243e0d957bf4a19aab8bf34d5dd6
Fixes: QTBUG-84762
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 15456efa20eb302ad2bc130d0d18db7d2fe58f4d)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoaglcontext.mm | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaglcontext.mm b/src/plugins/platforms/cocoa/qcocoaglcontext.mm index 915836113c..c8b5365a75 100644 --- a/src/plugins/platforms/cocoa/qcocoaglcontext.mm +++ b/src/plugins/platforms/cocoa/qcocoaglcontext.mm @@ -357,6 +357,8 @@ QCocoaGLContext::~QCocoaGLContext() bool QCocoaGLContext::makeCurrent(QPlatformSurface *surface) { + QMacAutoReleasePool pool; + qCDebug(lcQpaOpenGLContext) << "Making" << m_context << "current" << "in" << QThread::currentThread() << "for" << surface; @@ -479,6 +481,8 @@ void QCocoaGLContext::update() void QCocoaGLContext::swapBuffers(QPlatformSurface *surface) { + QMacAutoReleasePool pool; + qCDebug(lcQpaOpenGLContext) << "Swapping" << m_context << "in" << QThread::currentThread() << "to" << surface; @@ -512,6 +516,8 @@ void QCocoaGLContext::swapBuffers(QPlatformSurface *surface) void QCocoaGLContext::doneCurrent() { + QMacAutoReleasePool pool; + qCDebug(lcQpaOpenGLContext) << "Clearing current context" << [NSOpenGLContext currentContext] << "in" << QThread::currentThread(); |