Do not use QSharedPointer to store FileProviderSocketControllers, use QPointer
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 15 Mar 2023 16:56:56 +0000 (17:56 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:29:54 +0000 (13:29 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/macOS/fileprovidersocketserver.cpp
src/gui/macOS/fileprovidersocketserver.h

index 9a4dd4cf89a6842997dc2c283a85d3874c9cd257..70b01615705fdad716e42fc7a16d58c62391c680 100644 (file)
@@ -71,7 +71,12 @@ void FileProviderSocketServer::slotNewConnection()
 
 void FileProviderSocketServer::slotSocketDestroyed(const QLocalSocket * const socket)
 {
-    _socketControllers.remove(socket);
+    const auto socketController = _socketControllers.take(socket);
+
+    if (socketController) {
+        const auto rawSocketControllerPtr = socketController.data();
+        delete rawSocketControllerPtr;
+    }
 }
 
 } // namespace Mac
index ca58e2d1a6a3586420530c054d02b3558af8f712..893de666e5a468d80ae0e59f09f34347610de7fe 100644 (file)
@@ -22,7 +22,7 @@ namespace OCC {
 namespace Mac {
 
 class FileProviderSocketController;
-using FileProviderSocketControllerPtr = QSharedPointer<FileProviderSocketController>;
+using FileProviderSocketControllerPtr = QPointer<FileProviderSocketController>;
 
 QString fileProviderSocketPath();