1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-02-03 13:03:50 +00:00

(trunk libT) recycle the tr_list nodes when possible

This commit is contained in:
Charles Kerr 2008-12-29 17:28:14 +00:00
parent e7ffb4da03
commit 3a01d2e619

View file

@ -14,16 +14,39 @@
#include "list.h"
#include "utils.h"
/***
****
***/
static tr_list * _unusedNodes = NULL;
static const tr_list TR_LIST_INIT = { NULL, NULL, NULL };
static tr_list*
node_alloc( void )
{
return tr_new0( tr_list, 1 );
tr_list * node;
if( _unusedNodes == NULL )
node = tr_new( tr_list, 1 );
else {
node = _unusedNodes;
_unusedNodes = node->next;
}
*node = TR_LIST_INIT;
return node;
}
static void
node_free( tr_list* node )
{
tr_free( node );
if( node )
{
*node = TR_LIST_INIT;
node->next = _unusedNodes;
_unusedNodes = node;
}
}
/***