(trunk libT) minor tr_ptrArray API cleanup
This commit is contained in:
parent
cf79c87d7e
commit
ca6dd89e10
|
@ -182,8 +182,8 @@ fprintf( stderr, "bandwidth %p has %d peers\n", b, n );
|
||||||
/* traverse & repeat for the subtree */
|
/* traverse & repeat for the subtree */
|
||||||
if( 1 ) {
|
if( 1 ) {
|
||||||
int i;
|
int i;
|
||||||
struct tr_bandwidth ** children = (struct tr_bandwidth**) TR_PTR_ARRAY_DATA( &b->children );
|
struct tr_bandwidth ** children = (struct tr_bandwidth**) tr_ptrArrayBase( &b->children );
|
||||||
const int n = TR_PTR_ARRAY_LENGTH( &b->children );
|
const int n = tr_ptrArraySize( &b->children );
|
||||||
for( i=0; i<n; ++i )
|
for( i=0; i<n; ++i )
|
||||||
allocateBandwidth( children[i], dir, period_msec, peer_pool );
|
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
|
* 1. allocate bandwidth to b and its subtree
|
||||||
* 2. accumulate an array of all the peerIos from b and its subtree. */
|
* 2. accumulate an array of all the peerIos from b and its subtree. */
|
||||||
allocateBandwidth( b, dir, period_msec, &tmp );
|
allocateBandwidth( b, dir, period_msec, &tmp );
|
||||||
peers = (struct tr_peerIo**) TR_PTR_ARRAY_DATA( &tmp );
|
peers = (struct tr_peerIo**) tr_ptrArrayBase( &tmp );
|
||||||
peerCount = TR_PTR_ARRAY_LENGTH( &tmp );
|
peerCount = tr_ptrArraySize( &tmp );
|
||||||
|
|
||||||
/* Stop all peers from listening for the socket to be ready for IO.
|
/* 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. */
|
* See "Second phase of IO" lower in this function for more info. */
|
||||||
|
|
|
@ -619,8 +619,8 @@ getPreferredPieces( Torrent * t, tr_piece_index_t * pieceCount )
|
||||||
|
|
||||||
assert( torrentIsLocked( t ) );
|
assert( torrentIsLocked( t ) );
|
||||||
|
|
||||||
peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
peerCount = tr_ptrArraySize( &t->peers );
|
||||||
|
|
||||||
/* make a list of the pieces that we want but don't have */
|
/* make a list of the pieces that we want but don't have */
|
||||||
for( i = 0; i < inf->pieceCount; ++i )
|
for( i = 0; i < inf->pieceCount; ++i )
|
||||||
|
@ -790,7 +790,7 @@ refillPulse( void * vtorrent )
|
||||||
blockIterator = blockIteratorNew( t );
|
blockIterator = blockIteratorNew( t );
|
||||||
peers = getPeersUploadingToClient( t, &peerCount );
|
peers = getPeersUploadingToClient( t, &peerCount );
|
||||||
webseedCount = tr_ptrArraySize( &t->webseeds );
|
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* ) );
|
webseedCount * sizeof( tr_webseed* ) );
|
||||||
|
|
||||||
while( ( webseedCount || peerCount )
|
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 );
|
tordbg( t, "got a block; cancelling any duplicate requests from peers %"PRIu32":%"PRIu32"->%"PRIu32, index, offset, length );
|
||||||
|
|
||||||
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
peerCount = tr_ptrArraySize( &t->peers );
|
||||||
peers = (tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
peers = (tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
for( i=0; i<peerCount; ++i )
|
for( i=0; i<peerCount; ++i )
|
||||||
if( peers[i]->msgs )
|
if( peers[i]->msgs )
|
||||||
tr_peerMsgsCancel( peers[i]->msgs, index, offset, length );
|
tr_peerMsgsCancel( peers[i]->msgs, index, offset, length );
|
||||||
|
@ -1103,8 +1103,8 @@ peerCallbackFunc( void * vpeer, void * vevent, void * vt )
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
int peerCount = tr_ptrArraySize( &t->peers );
|
||||||
tr_peer ** peers = (tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
tr_peer ** peers = (tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
for( i=0; i<peerCount; ++i )
|
for( i=0; i<peerCount; ++i )
|
||||||
tr_peerMsgsHave( peers[i]->msgs, p );
|
tr_peerMsgsHave( peers[i]->msgs, p );
|
||||||
}
|
}
|
||||||
|
@ -1501,8 +1501,8 @@ tr_peerMgrGetPeers( tr_peerMgr * manager,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
const tr_peer ** peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
const tr_peer ** peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
const int peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
const int peerCount = tr_ptrArraySize( &t->peers );
|
||||||
/* for now, this will waste memory on torrents that have both
|
/* for now, this will waste memory on torrents that have both
|
||||||
* ipv6 and ipv4 peers */
|
* ipv6 and ipv4 peers */
|
||||||
tr_pex * pex = tr_new( tr_pex, peerCount );
|
tr_pex * pex = tr_new( tr_pex, peerCount );
|
||||||
|
@ -1661,8 +1661,8 @@ tr_peerMgrTorrentAvailability( const tr_peerMgr * manager,
|
||||||
tor = t->tor;
|
tor = t->tor;
|
||||||
interval = tor->info.pieceCount / (float)tabCount;
|
interval = tor->info.pieceCount / (float)tabCount;
|
||||||
isSeed = tor && ( tr_cpGetStatus ( &tor->completion ) == TR_SEED );
|
isSeed = tor && ( tr_cpGetStatus ( &tor->completion ) == TR_SEED );
|
||||||
peers = (const tr_peer **) TR_PTR_ARRAY_DATA( &t->peers );
|
peers = (const tr_peer **) tr_ptrArrayBase( &t->peers );
|
||||||
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
peerCount = tr_ptrArraySize( &t->peers );
|
||||||
|
|
||||||
memset( tab, 0, tabCount );
|
memset( tab, 0, tabCount );
|
||||||
|
|
||||||
|
@ -1697,8 +1697,8 @@ tr_peerMgrGetAvailable( const tr_peerMgr * manager,
|
||||||
|
|
||||||
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
||||||
pieces = tr_bitfieldNew( t->tor->info.pieceCount );
|
pieces = tr_bitfieldNew( t->tor->info.pieceCount );
|
||||||
peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
peerCount = tr_ptrArraySize( &t->peers );
|
||||||
peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
for( i=0; i<peerCount; ++i )
|
for( i=0; i<peerCount; ++i )
|
||||||
tr_bitfieldOr( pieces, peers[i]->have );
|
tr_bitfieldOr( pieces, peers[i]->have );
|
||||||
|
|
||||||
|
@ -1740,8 +1740,8 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
||||||
managerLock( manager );
|
managerLock( manager );
|
||||||
|
|
||||||
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
||||||
peers = (const tr_peer **) TR_PTR_ARRAY_DATA( &t->peers );
|
peers = (const tr_peer **) tr_ptrArrayBase( &t->peers );
|
||||||
size = TR_PTR_ARRAY_LENGTH( &t->peers );
|
size = tr_ptrArraySize( &t->peers );
|
||||||
|
|
||||||
*setmePeersKnown = tr_ptrArraySize( &t->pool );
|
*setmePeersKnown = tr_ptrArraySize( &t->pool );
|
||||||
*setmePeersConnected = 0;
|
*setmePeersConnected = 0;
|
||||||
|
@ -1775,8 +1775,8 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
||||||
++*setmeSeedsConnected;
|
++*setmeSeedsConnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
webseeds = (const tr_webseed**) TR_PTR_ARRAY_DATA( &t->webseeds );
|
webseeds = (const tr_webseed**) tr_ptrArrayBase( &t->webseeds );
|
||||||
size = TR_PTR_ARRAY_LENGTH( &t->webseeds );
|
size = tr_ptrArraySize( &t->webseeds );
|
||||||
for( i=0; i<size; ++i )
|
for( i=0; i<size; ++i )
|
||||||
if( tr_webseedIsActive( webseeds[i] ) )
|
if( tr_webseedIsActive( webseeds[i] ) )
|
||||||
++*setmeWebseedsSendingToUs;
|
++*setmeWebseedsSendingToUs;
|
||||||
|
@ -1798,8 +1798,8 @@ tr_peerMgrWebSpeeds( const tr_peerMgr * manager,
|
||||||
managerLock( manager );
|
managerLock( manager );
|
||||||
|
|
||||||
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
||||||
webseeds = (const tr_webseed**) TR_PTR_ARRAY_DATA( &t->webseeds );
|
webseeds = (const tr_webseed**) tr_ptrArrayBase( &t->webseeds );
|
||||||
webseedCount = TR_PTR_ARRAY_LENGTH( &t->webseeds );
|
webseedCount = tr_ptrArraySize( &t->webseeds );
|
||||||
assert( webseedCount == t->tor->info.webseedCount );
|
assert( webseedCount == t->tor->info.webseedCount );
|
||||||
ret = tr_new0( float, webseedCount );
|
ret = tr_new0( float, webseedCount );
|
||||||
|
|
||||||
|
@ -1832,8 +1832,8 @@ tr_peerMgrPeerStats( const tr_peerMgr * manager,
|
||||||
managerLock( manager );
|
managerLock( manager );
|
||||||
|
|
||||||
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
t = getExistingTorrent( (tr_peerMgr*)manager, torrentHash );
|
||||||
size = TR_PTR_ARRAY_LENGTH( &t->peers );
|
size = tr_ptrArraySize( &t->peers );
|
||||||
peers = (const tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
peers = (const tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
ret = tr_new0( tr_peer_stat, size );
|
ret = tr_new0( tr_peer_stat, size );
|
||||||
|
|
||||||
for( i = 0; i < size; ++i )
|
for( i = 0; i < size; ++i )
|
||||||
|
@ -1933,8 +1933,8 @@ static void
|
||||||
rechoke( Torrent * t )
|
rechoke( Torrent * t )
|
||||||
{
|
{
|
||||||
int i, size, unchokedInterested;
|
int i, size, unchokedInterested;
|
||||||
const int peerCount = TR_PTR_ARRAY_LENGTH( &t->peers );
|
const int peerCount = tr_ptrArraySize( &t->peers );
|
||||||
tr_peer ** peers = (tr_peer**) TR_PTR_ARRAY_DATA( &t->peers );
|
tr_peer ** peers = (tr_peer**) tr_ptrArrayBase( &t->peers );
|
||||||
struct ChokeData * choke = tr_new0( struct ChokeData, peerCount );
|
struct ChokeData * choke = tr_new0( struct ChokeData, peerCount );
|
||||||
const int chokeAll = !tr_torrentIsPieceTransferAllowed( t->tor, TR_CLIENT_TO_PEER );
|
const int chokeAll = !tr_torrentIsPieceTransferAllowed( t->tor, TR_CLIENT_TO_PEER );
|
||||||
|
|
||||||
|
|
|
@ -42,9 +42,6 @@ typedef struct tr_ptrArray
|
||||||
}
|
}
|
||||||
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 * );
|
typedef void ( *PtrArrayForeachFunc )( void * );
|
||||||
|
|
||||||
extern const tr_ptrArray TR_PTR_ARRAY_INIT;
|
extern const tr_ptrArray TR_PTR_ARRAY_INIT;
|
||||||
|
@ -86,6 +83,11 @@ void tr_ptrArrayErase( tr_ptrArray * array,
|
||||||
int begin,
|
int begin,
|
||||||
int end );
|
int end );
|
||||||
|
|
||||||
|
static inline void** tr_ptrArrayBase( const tr_ptrArray * a )
|
||||||
|
{
|
||||||
|
return a->items;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int tr_ptrArraySize( const tr_ptrArray * a )
|
static inline int tr_ptrArraySize( const tr_ptrArray * a )
|
||||||
{
|
{
|
||||||
return a->n_items;
|
return a->n_items;
|
||||||
|
|
Loading…
Reference in New Issue