#ifdef out non-reentrant prototypes.

Only testavl uses this interface.
This commit is contained in:
Kurt Zeilenga 1999-05-31 20:32:21 +00:00
parent a641a9266d
commit 322bb86fa4
3 changed files with 13 additions and 6 deletions

View File

@ -70,14 +70,10 @@ avl_find LDAP_P((Avlnode *, void*, AVL_CMP));
LDAP_F( void* )
avl_find_lin LDAP_P((Avlnode *, void*, AVL_CMP));
#ifdef AVL_NONREENTRANT
LDAP_F( void* )
avl_getfirst LDAP_P((Avlnode *));
#ifdef AVL_REENTRANT
/* ??? avl.c does not provide this version ??? */
LDAP_F( void* )
avl_getnext LDAP_P((Avlnode *, void* ));
#else
LDAP_F( void* )
avl_getnext LDAP_P((void));
#endif

View File

@ -664,6 +664,8 @@ avl_find_lin( Avlnode *root, void* data, AVL_CMP fcmp )
return( avl_find_lin( root->avl_right, data, fcmp ) );
}
/* NON-REENTRANT INTERFACE */
static void* *avl_list;
static int avl_maxlist;
static int avl_nextlist;
@ -736,6 +738,9 @@ avl_getnext( void )
return( avl_list[ avl_nextlist++ ] );
}
/* end non-reentrant code */
int
avl_dup_error( void* left, void* right )
{

View File

@ -7,6 +7,7 @@
#include <ac/string.h>
#define AVL_NONREENTRANT
#include "avl.h"
static void ravl_print LDAP_P(( Avlnode *root, int depth ));
@ -31,11 +32,16 @@ main( int argc, char **argv )
( void ) myprint( tree );
break;
case 't': /* traverse with first, next */
#ifdef AVL_NONREENTRANT
printf( "***\n" );
for ( p = (char * ) avl_getfirst( tree );
p != NULL; p = (char *) avl_getnext( /* tree, p */ ) )
p != NULL;
p = (char *) avl_getnext())
printf( "%s\n", p );
printf( "***\n" );
#else
printf( "*** reentrant interface not implemented ***" );
#endif
break;
case 'f': /* find */
printf( "data? " );