From e1ca9ac445fac3e183ebd01c4b6b518997cb08c8 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sat, 21 Jun 2008 17:44:01 +0000 Subject: [PATCH] attempt to fix #1048 --- macosx/Controller.m | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/macosx/Controller.m b/macosx/Controller.m index f349ee479..27244a359 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -1582,14 +1582,17 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy desiredSeedActive = [self numToStartFromQueue: NO]; //sort torrents by order value + NSArray * sortedTorrents; //can't just resort fTorrents because it might be rearranged while enumerating because of recursion if ([fTorrents count] > 1 && (desiredDownloadActive > 0 || desiredSeedActive > 0)) { NSSortDescriptor * orderDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"orderValue" ascending: YES] autorelease]; - [fTorrents sortUsingDescriptors: [NSArray arrayWithObject: orderDescriptor]]; + sortedTorrents = [fTorrents sortedArrayUsingDescriptors: [NSArray arrayWithObject: orderDescriptor]]; } + else + sortedTorrents = fTorrents; Torrent * torrent; - NSEnumerator * enumerator = [fTorrents objectEnumerator]; + NSEnumerator * enumerator = [sortedTorrents objectEnumerator]; while ((torrent = [enumerator nextObject])) { if (![torrent isActive] && ![torrent isChecking] && [torrent waitingToStart])