From bb16b6b4e2a94c84b605aa5a9b020f5f2e8e14c6 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston <livings124@transmissionbt.com> Date: Sun, 8 Jan 2012 17:05:12 +0000 Subject: [PATCH] improve how we search the message window's message array --- macosx/MessageWindowController.m | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/macosx/MessageWindowController.m b/macosx/MessageWindowController.m index d666470ca..949776cb1 100644 --- a/macosx/MessageWindowController.m +++ b/macosx/MessageWindowController.m @@ -442,16 +442,11 @@ const NSInteger level = [[NSUserDefaults standardUserDefaults] integerForKey: @"MessageLevel"]; NSString * filterString = [fFilterField stringValue]; - NSMutableArray * tempMessages = [NSMutableArray arrayWithCapacity: [fMessages count]]; //rough guess + NSIndexSet * indexes = [fMessages indexesOfObjectsWithOptions: NSEnumerationConcurrent passingTest: ^BOOL(id message, NSUInteger idx, BOOL * stop) { + return [[(NSDictionary *)message objectForKey: @"Level"] integerValue] <= level && [self shouldIncludeMessageForFilter: filterString message: message]; + }]; - for (NSDictionary * message in fMessages) - { - if ([[message objectForKey: @"Level"] integerValue] <= level - && [self shouldIncludeMessageForFilter: filterString message: message]) - [tempMessages addObject: message]; - } - - [tempMessages sortUsingDescriptors: [fMessageTable sortDescriptors]]; + NSArray * tempMessages = [[fMessages objectsAtIndexes: indexes] sortedArrayUsingDescriptors: [fMessageTable sortDescriptors]]; const BOOL onLion = [NSApp isOnLionOrBetter];