Diff for /include/avl.h between versions 1.24 and 1.24.2.3

version 1.24, 2004/11/19 22:33:46 version 1.24.2.3, 2006/01/03 22:16:06
Line 1 Line 1
 /* avl.h - avl tree definitions */  /* avl.h - avl tree definitions */
 /* $OpenLDAP: pkg/ldap/include/avl.h,v 1.23 2004/01/01 18:15:24 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/include/avl.h,v 1.24.2.2 2005/09/28 00:30:28 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2004 The OpenLDAP Foundation.   * Copyright 1998-2006 The OpenLDAP Foundation.
  * All rights reserved.   * All rights reserved.
  *   *
  * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
Line 40  typedef struct avlnode Avlnode; Line 40  typedef struct avlnode Avlnode;
   
 struct avlnode {  struct avlnode {
         void*           avl_data;          void*           avl_data;
         signed int              avl_bf;          struct avlnode  *avl_link[2];
         struct avlnode  *avl_left;          char            avl_bits[2];
         struct avlnode  *avl_right;          signed char             avl_bf;
 };  };
   
   #define avl_left        avl_link[0]
   #define avl_right       avl_link[1]
   #define avl_lbit        avl_bits[0]
   #define avl_rbit        avl_bits[1]
   
 #ifdef AVL_INTERNAL  #ifdef AVL_INTERNAL
   
 #define NULLAVL ((Avlnode *) NULL)  #define NULLAVL ((Avlnode *) NULL)
Line 54  struct avlnode { Line 59  struct avlnode {
 #define EH      0  #define EH      0
 #define RH      1  #define RH      1
   
   /* thread bits */
   #define AVL_THREAD      0
   #define AVL_CHILD       1
   
 /* avl routines */  /* avl routines */
 #define avl_getone(x)   ((x) == 0 ? 0 : (x)->avl_data)  #define avl_getone(x)   ((x) == 0 ? 0 : (x)->avl_data)
 #define avl_onenode(x)  ((x) == 0 || ((x)->avl_left == 0 && (x)->avl_right == 0))  #define avl_onenode(x)  ((x) == 0 || ((x)->avl_left == 0 && (x)->avl_right == 0))
   
 #endif /* AVL_INTERNALS */  #endif /* AVL_INTERNALS */
   
   #define avl_child(x,dir)        ((x)->avl_bits[dir]) == AVL_CHILD ? \
           (x)->avl_link[dir] : NULL
   #define avl_lchild(x)   avl_child(x,0)
   #define avl_rchild(x)   avl_child(x,1)
   
 typedef int             (*AVL_APPLY) LDAP_P((void *, void*));  typedef int             (*AVL_APPLY) LDAP_P((void *, void*));
 typedef int             (*AVL_CMP) LDAP_P((const void*, const void*));  typedef int             (*AVL_CMP) LDAP_P((const void*, const void*));
 typedef int             (*AVL_DUP) LDAP_P((void*, void*));  typedef int             (*AVL_DUP) LDAP_P((void*, void*));
Line 103  avl_apply LDAP_P((Avlnode *, AVL_APPLY, Line 117  avl_apply LDAP_P((Avlnode *, AVL_APPLY,
 LDAP_AVL_F( int )  LDAP_AVL_F( int )
 avl_prefixapply LDAP_P((Avlnode *, void*, AVL_CMP, void*, AVL_CMP, void*, int));  avl_prefixapply LDAP_P((Avlnode *, void*, AVL_CMP, void*, AVL_CMP, void*, int));
   
   LDAP_AVL_F( int )
   tavl_free LDAP_P(( Avlnode *root, AVL_FREE dfree ));
   
   LDAP_AVL_F( int )
   tavl_insert LDAP_P((Avlnode **, void*, AVL_CMP, AVL_DUP));
   
   LDAP_AVL_F( void* )
   tavl_delete LDAP_P((Avlnode **, void*, AVL_CMP));
   
   LDAP_AVL_F( void* )
   tavl_find LDAP_P((Avlnode *, const void*, AVL_CMP));
   
   LDAP_AVL_F( Avlnode* )
   tavl_find2 LDAP_P((Avlnode *, const void*, AVL_CMP));
   
   #define TAVL_DIR_LEFT   0
   #define TAVL_DIR_RIGHT  1
   
   LDAP_AVL_F( Avlnode* )
   tavl_end LDAP_P((Avlnode *, int direction ));
   
   LDAP_AVL_F( Avlnode* )
   tavl_next LDAP_P((Avlnode *, int direction ));
   
 /* apply traversal types */  /* apply traversal types */
 #define AVL_PREORDER    1  #define AVL_PREORDER    1
 #define AVL_INORDER     2  #define AVL_INORDER     2

Removed from v.1.24  
changed lines
  Added in v.1.24.2.3


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org