1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00
This commit is contained in:
Werner Koch 1998-10-12 20:16:38 +00:00
parent 786a2870df
commit 8477407e79
48 changed files with 1965 additions and 1215 deletions

View file

@ -28,12 +28,20 @@
#include "packet.h"
#include "keydb.h"
#define USE_UNUSED_NODES 1
static KBNODE unused_nodes;
KBNODE
new_kbnode( PACKET *pkt )
{
KBNODE n = m_alloc( sizeof *n );
KBNODE n;
n = unused_nodes;
if( n )
unused_nodes = n->next;
else
n = m_alloc( sizeof *n );
n->next = NULL;
n->pkt = pkt;
n->flag = 0;
@ -45,7 +53,13 @@ new_kbnode( PACKET *pkt )
KBNODE
clone_kbnode( KBNODE node )
{
KBNODE n = m_alloc( sizeof *n );
KBNODE n;
n = unused_nodes;
if( n )
unused_nodes = n->next;
else
n = m_alloc( sizeof *n );
n->next = NULL;
n->pkt = node->pkt;
n->flag = 0;
@ -61,9 +75,16 @@ release_kbnode( KBNODE n )
while( n ) {
n2 = n->next;
if( !(n->private_flag & 2) )
if( !(n->private_flag & 2) ) {
free_packet( n->pkt );
m_free( n->pkt );
}
#if USE_UNUSED_NODES
n->next = unused_nodes;
unused_nodes = n;
#else
m_free( n );
#endif
n = n2;
}
}
@ -230,9 +251,16 @@ commit_kbnode( KBNODE *root )
*root = nl = n->next;
else
nl->next = n->next;
if( !(n->private_flag & 2) )
if( !(n->private_flag & 2) ) {
free_packet( n->pkt );
m_free( n->pkt );
}
#if USE_UNUSED_NODES
n->next = unused_nodes;
unused_nodes = n;
#else
m_free( n );
#endif
changed = 1;
}
else