Fixed memleak
Don't count small messages in the download rate
This commit is contained in:
parent
1d7f99b164
commit
77dc2be62a
|
@ -67,9 +67,13 @@ static inline void cleanOldTransfers( tr_ratecontrol_t * r )
|
||||||
for( t = r->last; t && t->date < old; )
|
for( t = r->last; t && t->date < old; )
|
||||||
{
|
{
|
||||||
prev = t->prev;
|
prev = t->prev;
|
||||||
|
if( prev )
|
||||||
prev->next = NULL;
|
prev->next = NULL;
|
||||||
|
else
|
||||||
|
r->first = NULL;
|
||||||
free( t );
|
free( t );
|
||||||
t = prev;
|
t = prev;
|
||||||
|
r->last = prev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,11 +110,18 @@ void tr_rcTransferred( tr_ratecontrol_t * r, int size )
|
||||||
{
|
{
|
||||||
tr_transfer_t * t;
|
tr_transfer_t * t;
|
||||||
|
|
||||||
|
if( size < 100 )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
tr_lockLock( &r->lock );
|
tr_lockLock( &r->lock );
|
||||||
t = malloc( sizeof( tr_transfer_t ) );
|
t = malloc( sizeof( tr_transfer_t ) );
|
||||||
|
|
||||||
if( r->first )
|
if( r->first )
|
||||||
r->first->prev = t;
|
r->first->prev = t;
|
||||||
|
if( !r->last )
|
||||||
|
r->last = t;
|
||||||
t->next = r->first;
|
t->next = r->first;
|
||||||
t->prev = NULL;
|
t->prev = NULL;
|
||||||
r->first = t;
|
r->first = t;
|
||||||
|
|
Loading…
Reference in New Issue