adium 2364:2d88f2bca051: retain/autorelease the uploader/window ...

commits at adium.im commits at adium.im
Thu May 28 04:49:46 UTC 2009


details:	http://hg.adium.im/adium/rev/2d88f2bca051
revision:	2364:2d88f2bca051
author:		Zachary West <zacw at adium.im>
date:		Thu May 28 00:49:41 2009 -0400

retain/autorelease the uploader/window controller, so it doesn't get deallocated as *soon* as it says "I'm done!"

diffstat:

 Plugins/Image Uploading Plugin/AIImageUploaderPlugin.m |  17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diffs (35 lines):

diff -r 2dcf62dd1e08 -r 2d88f2bca051 Plugins/Image Uploading Plugin/AIImageUploaderPlugin.m
--- a/Plugins/Image Uploading Plugin/AIImageUploaderPlugin.m	Thu May 28 00:44:28 2009 -0400
+++ b/Plugins/Image Uploading Plugin/AIImageUploaderPlugin.m	Thu May 28 00:49:41 2009 -0400
@@ -248,7 +248,13 @@
 */
 - (void)uploadedURL:(NSString *)url forChat:(AIChat *)chat
 {
-	[[windowControllers objectForKey:chat.internalObjectID] closeWindow:nil];
+	AIImageUploaderWindowController *windowController = [windowControllers objectForKey:chat.internalObjectID];
+	NSObject <AIImageUploader> *imageUploader = [uploadInstances objectForKey:chat.internalObjectID];
+	
+	[windowController closeWindow:nil];
+	
+	[[windowController retain] autorelease];
+	[[imageUploader retain] autorelease];
 	
 	[windowControllers setValue:nil forKey:chat.internalObjectID];
 	[uploadInstances setValue:nil forKey:chat.internalObjectID];
@@ -283,8 +289,15 @@
 - (void)cancelForChat:(AIChat *)chat
 {
 	[[uploadInstances objectForKey:chat.internalObjectID] cancel];
+	
+	AIImageUploaderWindowController *windowController = [windowControllers objectForKey:chat.internalObjectID];
+	NSObject <AIImageUploader> *imageUploader = [uploadInstances objectForKey:chat.internalObjectID];
+
+	[[windowController retain] autorelease];
+	[[imageUploader retain] autorelease];
+	
+	[windowControllers setValue:nil forKey:chat.internalObjectID];
 	[uploadInstances setValue:nil forKey:chat.internalObjectID];
-	[windowControllers setValue:nil forKey:chat.internalObjectID];
 
 	AILogWithSignature(@"Cancelled image upload for %@", chat);
 }




More information about the commits mailing list