From e6dfd2e9b084bea53bf39c5fa3d70dbc81777218 Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Sun, 1 Jun 2025 17:14:08 +0800 Subject: [PATCH] Cocoa: QNSView - fix memory leak of QContainerLayer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setLayer will increment the reference count, so QContainerLayer is leaked, as it is not autoreleased. Pick-to: 6.10 Change-Id: I43cef8bbf9ccb9b849322edfb1e7ab75f5ae9898 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qnsview_drawing.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/platforms/cocoa/qnsview_drawing.mm b/src/plugins/platforms/cocoa/qnsview_drawing.mm index b954a48e71a..a5a17a8c134 100644 --- a/src/plugins/platforms/cocoa/qnsview_drawing.mm +++ b/src/plugins/platforms/cocoa/qnsview_drawing.mm @@ -142,7 +142,7 @@ static const bool containerLayerOptOut = qEnvironmentVariableIsSet("QT_MAC_NO_CONTAINER_LAYER"); if (m_platformWindow->window()->surfaceType() != QSurface::OpenGLSurface && !containerLayerOptOut) { qCDebug(lcQpaDrawing) << "Wrapping content layer" << layer << "in container layer"; - auto *containerLayer = [[QContainerLayer alloc] initWithContentLayer:layer]; + auto *containerLayer = [[[QContainerLayer alloc] initWithContentLayer:layer] autorelease]; containerLayer.name = @"Qt container layer"; containerLayer.delegate = self; layer = containerLayer;