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];