(trunk libT) minor tr_ptrArray API cleanup

This commit is contained in:
Charles Kerr 2009-01-04 16:59:15 +00:00
parent cf79c87d7e
commit ca6dd89e10
3 changed files with 32 additions and 30 deletions

View File

@ -182,8 +182,8 @@ fprintf( stderr, "bandwidth %p has %d peers\n", b, n );
/* traverse & repeat for the subtree */
if( 1 ) {
int i;
struct tr_bandwidth ** children = (struct tr_bandwidth**) TR_PTR_ARRAY_DATA( &b->children );
const int n = TR_PTR_ARRAY_LENGTH( &b->children );
struct tr_bandwidth ** children = (struct tr_bandwidth**) tr_ptrArrayBase( &b->children );
const int n = tr_ptrArraySize( &b->children );
for( i=0; i<n; ++i )
allocateBandwidth( children[i], dir, period_msec, peer_pool );
}
@ -202,8 +202,8 @@ tr_bandwidthAllocate( tr_bandwidth * b,
* 1. allocate bandwidth to b and its subtree
* 2. accumulate an array of all the peerIos from b and its subtree. */
allocateBandwidth( b, dir, period_msec, &tmp );
peers = (struct tr_peerIo**) TR_PTR_ARRAY_DATA( &tmp );
peerCount = TR_PTR_ARRAY_LENGTH( &tmp );
peers = (struct tr_peerIo**) tr_ptrArrayBase( &tmp );
peerCount = tr_ptrArraySize( &tmp );
/* Stop all peers from listening for the socket to be ready for IO.
* See "Second phase of IO" lower in this function for more info. */

View File

@ -619,8 +619,8 @@ getPreferredPieces( Torrent * t, tr_piece_index_t * pieceCount )
assert( torrentIsLocked( t ) );
peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
peerCount = tr_ptrArraySize( &t->peers );
/* make a list of the pieces that we want but don't have */
for( i = 0; i < inf->pieceCount; ++i )
@ -790,7 +790,7 @@ refillPulse( void * vtorrent )
blockIterator = blockIteratorNew( t );
peers = getPeersUploadingToClient( t, &peerCount );
webseedCount = tr_ptrArraySize( &t->webseeds );
webseeds = tr_memdup( TR_PTR_ARRAY_DATA( &t->webseeds ),
webseeds = tr_memdup( tr_ptrArrayBase( &t->webseeds ),
webseedCount * sizeof( tr_webseed* ) );
while( ( webseedCount || peerCount )
@ -873,8 +873,8 @@ broadcastGotBlock( Torrent * t, uint32_t index, uint32_t offset, uint32_t length
tordbg( t, "got a block; cancelling any duplicate requests from peers %"PRIu32":%"PRIu32"->%"PRIu32, index, offset, length );
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
peers = (tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
peerCount = tr_ptrArraySize( &t->peers );
peers = (tr_peer**) tr_ptrArrayBase( &t->peers );
for( i=0; i<peerCount; ++i )
if( peers[i]->msgs )
tr_peerMsgsCancel( peers[i]->msgs, index, offset, length );
@ -1103,8 +1103,8 @@ peerCallbackFunc( void * vpeer, void * vevent, void * vt )
else
{
int i;
int peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
tr_peer ** peers = (tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
int peerCount = tr_ptrArraySize( &t->peers );
tr_peer ** peers = (tr_peer**) tr_ptrArrayBase( &t->peers );
for( i=0; i<peerCount; ++i )
tr_peerMsgsHave( peers[i]->msgs, p );
}
@ -1501,8 +1501,8 @@ tr_peerMgrGetPeers( tr_peerMgr * manager,
else
{
int i;
const tr_peer ** peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
const int peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
const tr_peer ** peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
const int peerCount = tr_ptrArraySize( &t->peers );
/* for now, this will waste memory on torrents that have both
* ipv6 and ipv4 peers */
tr_pex * pex = tr_new( tr_pex, peerCount );
@ -1661,8 +1661,8 @@ tr_peerMgrTorrentAvailability( const tr_peerMgr * manager,
tor = t->tor;
interval = tor->info.pieceCount / (float)tabCount;
isSeed = tor && ( tr_cpGetStatus ( &tor->completion ) == TR_SEED );
peers = (const tr_peer **) TR_PTR_ARRAY_DATA( &t->peers );
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
peers = (const tr_peer **) tr_ptrArrayBase( &t->peers );
peerCount = tr_ptrArraySize( &t->peers );
memset( tab, 0, tabCount );
@ -1697,8 +1697,8 @@ tr_peerMgrGetAvailable( const tr_peerMgr * manager,
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
pieces = tr_bitfieldNew( t->tor->info.pieceCount );
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
peerCount = tr_ptrArraySize( &t->peers );
peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
for( i=0; i<peerCount; ++i )
tr_bitfieldOr( pieces, peers[i]->have );
@ -1740,8 +1740,8 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
managerLock( manager );
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
peers = (const tr_peer **) TR_PTR_ARRAY_DATA( &t->peers );
size = TR_PTR_ARRAY_LENGTH( &t->peers );
peers = (const tr_peer **) tr_ptrArrayBase( &t->peers );
size = tr_ptrArraySize( &t->peers );
*setmePeersKnown = tr_ptrArraySize( &t->pool );
*setmePeersConnected = 0;
@ -1775,8 +1775,8 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
++*setmeSeedsConnected;
}
webseeds = (const tr_webseed**) TR_PTR_ARRAY_DATA( &t->webseeds );
size = TR_PTR_ARRAY_LENGTH( &t->webseeds );
webseeds = (const tr_webseed**) tr_ptrArrayBase( &t->webseeds );
size = tr_ptrArraySize( &t->webseeds );
for( i=0; i<size; ++i )
if( tr_webseedIsActive( webseeds[i] ) )
++*setmeWebseedsSendingToUs;
@ -1798,8 +1798,8 @@ tr_peerMgrWebSpeeds( const tr_peerMgr * manager,
managerLock( manager );
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
webseeds = (const tr_webseed**) TR_PTR_ARRAY_DATA( &t->webseeds );
webseedCount = TR_PTR_ARRAY_LENGTH( &t->webseeds );
webseeds = (const tr_webseed**) tr_ptrArrayBase( &t->webseeds );
webseedCount = tr_ptrArraySize( &t->webseeds );
assert( webseedCount == t->tor->info.webseedCount );
ret = tr_new0( float, webseedCount );
@ -1832,8 +1832,8 @@ tr_peerMgrPeerStats( const tr_peerMgr * manager,
managerLock( manager );
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
size = TR_PTR_ARRAY_LENGTH( &t->peers );
peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
size = tr_ptrArraySize( &t->peers );
peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
ret = tr_new0( tr_peer_stat, size );
for( i = 0; i < size; ++i )
@ -1933,8 +1933,8 @@ static void
rechoke( Torrent * t )
{
int i, size, unchokedInterested;
const int peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
tr_peer ** peers = (tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
const int peerCount = tr_ptrArraySize( &t->peers );
tr_peer ** peers = (tr_peer**) tr_ptrArrayBase( &t->peers );
struct ChokeData * choke = tr_new0( struct ChokeData, peerCount );
const int chokeAll = !tr_torrentIsPieceTransferAllowed( t->tor, TR_CLIENT_TO_PEER );

View File

@ -42,9 +42,6 @@ typedef struct tr_ptrArray
}
tr_ptrArray;
#define TR_PTR_ARRAY_DATA( A ) ((A)->items)
#define TR_PTR_ARRAY_LENGTH( A ) ((A)->n_items)
typedef void ( *PtrArrayForeachFunc )( void * );
extern const tr_ptrArray TR_PTR_ARRAY_INIT;
@ -86,6 +83,11 @@ void tr_ptrArrayErase( tr_ptrArray * array,
int begin,
int end );
static inline void** tr_ptrArrayBase( const tr_ptrArray * a )
{
return a->items;
}
static inline int tr_ptrArraySize( const tr_ptrArray * a )
{
return a->n_items;