Changeset 13144


Ignore:
Timestamp:
Jan 8, 2012, 5:37:18 AM (10 years ago)
Author:
livings124
Message:

more array enumeration using blocks and the concurrent option

Location:
trunk/macosx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.m

    r13141 r13144  
    21202120        if (searchStrings)
    21212121        {
    2122             BOOL removeTextField = NO;
     2122            __block BOOL removeTextField = NO;
    21232123            if (filterTracker)
    21242124            {
    21252125                NSArray * trackers = [torrent allTrackersFlat];
    21262126               
    2127                 //to count, we need each string in atleast 1 tracker
    2128                 for (NSString * searchString in searchStrings)
    2129                 {
    2130                     BOOL found = NO;
    2131                     for (NSString * tracker in trackers)
    2132                     {
     2127                //to count, we need each string in at least 1 tracker
     2128                [searchStrings enumerateObjectsWithOptions: NSEnumerationConcurrent usingBlock: ^(id searchString, NSUInteger idx, BOOL * stop) {
     2129                    __block BOOL found = NO;
     2130                    [trackers enumerateObjectsWithOptions: NSEnumerationConcurrent usingBlock: ^(id tracker, NSUInteger idx, BOOL * stopTracker) {
    21332131                        if ([tracker rangeOfString: searchString options: (NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch)].location != NSNotFound)
    21342132                        {
    21352133                            found = YES;
    2136                             break;
     2134                            *stopTracker = YES;
    21372135                        }
    2138                     }
     2136                    }];
    21392137                    if (!found)
    21402138                    {
    21412139                        removeTextField = YES;
    2142                         break;
     2140                        *stop = YES;
    21432141                    }
    2144                 }
     2142                }];
    21452143            }
    21462144            else
    21472145            {
    2148                 for (NSString * searchString in searchStrings)
     2146                [searchStrings enumerateObjectsWithOptions: NSEnumerationConcurrent usingBlock: ^(id searchString, NSUInteger idx, BOOL * stop) {
    21492147                    if ([[torrent name] rangeOfString: searchString options: (NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch)].location == NSNotFound)
    21502148                    {
    21512149                        removeTextField = YES;
    2152                         break;
     2150                        *stop = YES;
    21532151                    }
     2152                }];
    21542153            }
    21552154           
  • trunk/macosx/FileOutlineController.m

    r13143 r13144  
    126126    for (FileListNode * item in tempList)
    127127    {
    128         BOOL filter = NO;
     128        __block BOOL filter = NO;
    129129        if (components)
    130130        {
    131             for (NSString * sub in components)
    132                 if ([[item name] rangeOfString: sub options: (NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch)].location == NSNotFound)
     131            [components enumerateObjectsWithOptions: NSEnumerationConcurrent usingBlock: ^(id obj, NSUInteger idx, BOOL * stop) {
     132                if ([[item name] rangeOfString: (NSString *)obj options: (NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch)].location == NSNotFound)
    133133                {
    134134                    filter = YES;
    135                     break;
     135                    *stop = YES;
    136136                }
     137            }];
    137138        }
    138139       
Note: See TracChangeset for help on using the changeset viewer.