Fixed memleak

Don't count small messages in the download rate
This commit is contained in:
Eric Petit 2006-02-02 01:59:02 +00:00
parent 1d7f99b164
commit 77dc2be62a
1 changed files with 13 additions and 2 deletions

View File

@ -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;