slight efficiency improvements for peers and webseeds in the inspector

This commit is contained in:
Mitchell Livingston 2010-02-06 15:42:18 +00:00
parent 5a69330344
commit 3b2ad86fcf
1 changed files with 18 additions and 14 deletions

View File

@ -735,9 +735,7 @@ typedef enum
{ {
if (fPeers) if (fPeers)
{ {
NSArray * oldPeers = fPeers; [fPeers sortUsingDescriptors: [self peerSortDescriptors]];
fPeers = [[fPeers sortedArrayUsingDescriptors: [self peerSortDescriptors]] retain];
[oldPeers release];
[tableView reloadData]; [tableView reloadData];
} }
} }
@ -745,9 +743,7 @@ typedef enum
{ {
if (fWebSeeds) if (fWebSeeds)
{ {
NSArray * oldWebSeeds = fWebSeeds; [fWebSeeds sortUsingDescriptors: [fWebSeedTable sortDescriptors]];
fWebSeeds = [[fWebSeeds sortedArrayUsingDescriptors: [fWebSeedTable sortDescriptors]] retain];
[oldWebSeeds release];
[tableView reloadData]; [tableView reloadData];
} }
} }
@ -1257,7 +1253,7 @@ typedef enum
[fPeersConnectField setEnabled: NO]; [fPeersConnectField setEnabled: NO];
[fPeersConnectField setStringValue: @""]; [fPeersConnectField setStringValue: @""];
[fPeersConnectLabel setEnabled: NO]; [fPeersConnectLabel setEnabled: NO];
[fPeers release]; [fPeers release];
fPeers = nil; fPeers = nil;
[fPeerTable reloadData]; [fPeerTable reloadData];
@ -1389,19 +1385,23 @@ typedef enum
[fFileFilterField setStringValue: @""]; [fFileFilterField setStringValue: @""];
[fWebSeeds release]; //reset webseeds here, since it might be hidden regardless of number selected
fWebSeeds = nil;
BOOL hasWebSeeds = NO; BOOL hasWebSeeds = NO;
for (Torrent * torrent in fTorrents) for (Torrent * torrent in fTorrents)
{
if ([torrent webSeedCount] > 0) if ([torrent webSeedCount] > 0)
{ {
hasWebSeeds = YES; hasWebSeeds = YES;
break; break;
} }
}
if (!hasWebSeeds) if (!hasWebSeeds)
{
[fWebSeeds release];
fWebSeeds = nil;
[fWebSeedTable reloadData]; [fWebSeedTable reloadData];
}
[self setWebSeedTableHidden: !hasWebSeeds animate: YES]; [self setWebSeedTableHidden: !hasWebSeeds animate: YES];
//update stats and settings //update stats and settings
@ -1546,8 +1546,10 @@ typedef enum
if ([fTorrents count] == 0) if ([fTorrents count] == 0)
return; return;
[fPeers release]; if (!fPeers)
fPeers = [[NSMutableArray alloc] init]; fPeers = [[NSMutableArray alloc] init];
else
[fPeers removeAllObjects];
NSUInteger known = 0, connected = 0, tracker = 0, incoming = 0, cache = 0, pex = 0, dht = 0, ltep = 0, NSUInteger known = 0, connected = 0, tracker = 0, incoming = 0, cache = 0, pex = 0, dht = 0, ltep = 0,
toUs = 0, fromUs = 0; toUs = 0, fromUs = 0;
@ -1638,8 +1640,10 @@ typedef enum
[fPeers sortUsingDescriptors: [self peerSortDescriptors]]; [fPeers sortUsingDescriptors: [self peerSortDescriptors]];
[fPeerTable reloadData]; [fPeerTable reloadData];
[fWebSeeds release]; if (!fWebSeeds)
fWebSeeds = [[NSMutableArray alloc] init]; fWebSeeds = [[NSMutableArray alloc] init];
else
[fWebSeeds removeAllObjects];
for (Torrent * torrent in fTorrents) for (Torrent * torrent in fTorrents)
[fWebSeeds addObjectsFromArray: [torrent webSeeds]]; [fWebSeeds addObjectsFromArray: [torrent webSeeds]];