]> granicus.if.org Git - transmission/commitdiff
a tiny bit more safety by assigning the torrent directly, instead of getting the...
authorMitchell Livingston <livings124@transmissionbt.com>
Mon, 4 Mar 2013 04:12:54 +0000 (04:12 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Mon, 4 Mar 2013 04:12:54 +0000 (04:12 +0000)
macosx/Controller.m

index 0a2847ccc48bd28ae049ab74a148ca99dde11ef8..ba0b79029630a09899816878d0f2738f15f7f60f 100644 (file)
@@ -4740,19 +4740,19 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
     @autoreleasepool
     {
         //get the torrent
-        Torrent * torrent = nil;
+        __block Torrent * torrent = nil;
         if (torrentStruct != NULL && (type != TR_RPC_TORRENT_ADDED && type != TR_RPC_SESSION_CHANGED && type != TR_RPC_SESSION_CLOSE))
         {
-            const NSUInteger index = [fTorrents indexOfObjectWithOptions:NSEnumerationConcurrent passingTest: ^BOOL(Torrent * checkTorrent, NSUInteger idx, BOOL * stop) {
-                return torrentStruct == [checkTorrent torrentStruct];
+            [fTorrents enumerateObjectsWithOptions: NSEnumerationConcurrent usingBlock: ^(Torrent * checkTorrent, NSUInteger idx, BOOL *stop) {
+                if (torrentStruct == [checkTorrent torrentStruct])
+                    torrent = checkTorrent;
             }];
             
-            if (index == NSNotFound)
+            if (!torrent)
             {
                 NSLog(@"No torrent found matching the given torrent struct from the RPC callback!");
                 return;
             }
-            torrent = [fTorrents objectAtIndex: index];
         }
         
         dispatch_async(dispatch_get_main_queue(), ^{