properly retain/release nstimers like any other objective-c object

This commit is contained in:
Mitchell Livingston 2012-09-10 02:37:29 +00:00
parent 4382b7c93a
commit 7dd5b57851
8 changed files with 28 additions and 15 deletions

View File

@ -133,8 +133,8 @@
[fLocationImageView setImage: nil];
}
fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self
selector: @selector(updateFiles) userInfo: nil repeats: YES];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self
selector: @selector(updateFiles) userInfo: nil repeats: YES] retain];
[self updateFiles];
}
@ -150,6 +150,7 @@
[[NSNotificationCenter defaultCenter] removeObserver: self];
[fTimer invalidate];
[fTimer release];
[fDestination release];
[fTorrentFile release];
@ -220,6 +221,7 @@
- (BOOL) windowShouldClose: (id) window
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
[fFileController setTorrent: nil]; //avoid a crash when window tries to update
@ -331,6 +333,7 @@
- (void) confirmAdd
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
[fTorrent setGroupValue: fGroupValue];

View File

@ -69,8 +69,7 @@ BlocklistScheduler * fScheduler = nil;
NSDate * useDate = lastUpdateDate ? [lastUpdateDate laterDate: closeDate] : closeDate;
fTimer = [[NSTimer alloc] initWithFireDate: useDate interval: 0 target: self selector: @selector(runUpdater)
userInfo: nil repeats: NO];
fTimer = [[NSTimer alloc] initWithFireDate: useDate interval: 0 target: self selector: @selector(runUpdater) userInfo: nil repeats: NO];
//current run loop usually means a second update won't work
NSRunLoop * loop = [NSRunLoop mainRunLoop];
@ -82,6 +81,7 @@ BlocklistScheduler * fScheduler = nil;
- (void) cancelSchedule
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
}
@ -91,6 +91,7 @@ BlocklistScheduler * fScheduler = nil;
- (void) runUpdater
{
[fTimer release];
fTimer = nil;
[BlocklistDownloader downloader];
}

View File

@ -537,8 +537,8 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
//timer to update the interface every second
[self updateUI];
fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_UI_SECONDS target: self
selector: @selector(updateUI) userInfo: nil repeats: YES];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_UI_SECONDS target: self
selector: @selector(updateUI) userInfo: nil repeats: YES] retain];
[[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode];
[[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode];
@ -682,6 +682,7 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
[[NSNotificationCenter defaultCenter] removeObserver: self];
[fTimer invalidate];
[fTimer release];
if (fAutoImportTimer)
{

View File

@ -206,6 +206,7 @@
tr_metaInfoBuilderFree(fInfo);
[fTimer invalidate];
[fTimer release];
[super dealloc];
}
@ -551,8 +552,7 @@
tr_makeMetaInfo(fInfo, [[fLocation path] UTF8String], trackerInfo, [fTrackers count], [[fCommentView string] UTF8String], [fPrivateCheck state] == NSOnState);
tr_free(trackerInfo);
fTimer = [NSTimer scheduledTimerWithTimeInterval: 0.1 target: self selector: @selector(checkProgress)
userInfo: nil repeats: YES];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: 0.1 target: self selector: @selector(checkProgress) userInfo: nil repeats: YES] retain];
}
- (void) checkProgress
@ -560,6 +560,7 @@
if (fInfo->isDone)
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
NSAlert * alert;

View File

@ -139,6 +139,7 @@
[[NSNotificationCenter defaultCenter] removeObserver: self];
[fTimer invalidate];
[fTimer release];
[fLock release];
[fMessages release];
@ -153,7 +154,7 @@
{
if (!fTimer)
{
fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES] retain];
[self updateLog: nil];
}
}
@ -161,6 +162,7 @@
- (void) windowWillClose: (id)sender
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
}
@ -175,7 +177,8 @@
- (void) window: (NSWindow *) window didDecodeRestorableState: (NSCoder *) coder
{
[fTimer invalidate];
fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES];
[fTimer release];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES] retain];
[self updateLog: nil];
}

View File

@ -45,8 +45,7 @@
fStatus = PORT_STATUS_CHECKING;
fTimer = [NSTimer scheduledTimerWithTimeInterval: CHECK_FIRE target: self selector: @selector(startProbe:)
userInfo: [NSNumber numberWithInteger: portNumber] repeats: NO];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: CHECK_FIRE target: self selector: @selector(startProbe:) userInfo: [NSNumber numberWithInteger: portNumber] repeats: NO] retain];
if (!delay)
[fTimer fire];
}
@ -57,6 +56,7 @@
- (void) dealloc
{
[fTimer invalidate];
[fTimer release];
[fConnection release];
[fPortProbeData release];
@ -71,6 +71,7 @@
- (void) cancelProbe
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
[fConnection cancel];
@ -124,6 +125,7 @@
- (void) startProbe: (NSTimer *) timer
{
[fTimer release];
fTimer = nil;
NSURLRequest * portProbeRequest = [NSURLRequest requestWithURL: [NSURL URLWithString: CHECKER_URL([[timer userInfo] integerValue])]

View File

@ -146,6 +146,7 @@
[[NSNotificationCenter defaultCenter] removeObserver: self];
[fPortStatusTimer invalidate];
[fPortStatusTimer release];
if (fPortChecker)
{
[fPortChecker cancelProbe];
@ -201,8 +202,7 @@
fNatStatus = -1;
[self updatePortStatus];
fPortStatusTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self
selector: @selector(updatePortStatus) userInfo: nil repeats: YES];
fPortStatusTimer = [[NSTimer scheduledTimerWithTimeInterval: 5.0 target: self selector: @selector(updatePortStatus) userInfo: nil repeats: YES] retain];
//set peer connections
[fPeersGlobalField setIntValue: [fDefaults integerForKey: @"PeersTotal"]];

View File

@ -63,7 +63,7 @@ tr_session * fLib = NULL;
{
[self updateStats];
fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateStats) userInfo: nil repeats: YES];
fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateStats) userInfo: nil repeats: YES] retain];
[[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode];
[[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode];
@ -133,6 +133,8 @@ tr_session * fLib = NULL;
- (void) windowWillClose: (id) sender
{
[fTimer invalidate];
[fTimer release];
fTimer = nil;
[fStatsWindowInstance autorelease];
fStatsWindowInstance = nil;