From fd3b64dfbbc445d52961784176eec8572f2c7880 Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Sat, 21 Jan 2012 18:46:25 +0000 Subject: - Make SPConnectionController a NSConnectionView subclass so that retain cycles caused by manually loading libs with bindings to File's Owner are automatically handled, fixing leaks of SPConnectionController and items it retain including any MCPConnection; this will fix issues with MCPConnections attempting to reconnect but no longer having an associated SPDatabaseDocument --- Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m | 2 +- Source/SPConnectionController.h | 2 +- Source/SPTablesList.m | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m b/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m index 2c4f424d..04dcf50d 100644 --- a/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m +++ b/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m @@ -3255,7 +3255,7 @@ void pingThreadCleanup(void *pingDetails) delegate = nil; // Ensure the query lock is unlocked, thereafter setting to nil in case of pending calls - [self unlockConnection]; + if ([connectionLock condition] != MCPConnectionIdle) [self unlockConnection]; [connectionLock release], connectionLock = nil; // Clean up connections if necessary diff --git a/Source/SPConnectionController.h b/Source/SPConnectionController.h index 33a41d37..4ecff7e5 100644 --- a/Source/SPConnectionController.h +++ b/Source/SPConnectionController.h @@ -51,7 +51,7 @@ @end #endif -@interface SPConnectionController : NSObject +@interface SPConnectionController : NSViewController { id delegate; diff --git a/Source/SPTablesList.m b/Source/SPTablesList.m index 97055611..e68bf4f6 100644 --- a/Source/SPTablesList.m +++ b/Source/SPTablesList.m @@ -24,9 +24,6 @@ // More info at #import "SPTablesList.h" -#ifndef SP_REFACTOR /* headers */ -#import "SPConnectionController.h" -#endif #import "SPDatabaseDocument.h" #import "SPTableStructure.h" #import "SPDatabaseViewController.h" -- cgit v1.2.3