X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=libraries%2Fliblutil%2Ftavl.c;h=f1a8f71967fa423ab578cfddfba47bf7536fcfa1;hb=34249c08a5c15ebf15f78570ca61e6acad94dc22;hp=d64474fe943e33c54f5a16d734261f1831c3d5b1;hpb=19f3b86c67dbacbf43019fb5149cfcbf2b2a32b7;p=openldap diff --git a/libraries/liblutil/tavl.c b/libraries/liblutil/tavl.c index d64474fe94..f1a8f71967 100644 --- a/libraries/liblutil/tavl.c +++ b/libraries/liblutil/tavl.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2005-2008 The OpenLDAP Foundation. + * Copyright 2005-2010 The OpenLDAP Foundation. * Portions Copyright (c) 2005 by Howard Chu, Symas Corp. * All rights reserved. * @@ -21,6 +21,7 @@ #include "portable.h" +#include #include #include @@ -35,6 +36,9 @@ #define AVL_INTERNAL #include "avl.h" +/* Maximum tree depth this host's address space could support */ +#define MAX_TREE_DEPTH (sizeof(void *) * CHAR_BIT) + static const int avl_bfs[] = {LH, RH}; /* @@ -189,8 +193,8 @@ tavl_delete( Avlnode **root, void* data, AVL_CMP fcmp ) int side, side_bf, shorter, nside = -1; /* parent stack */ - Avlnode *pptr[sizeof(void *)*8]; - unsigned char pdir[sizeof(void *)*8]; + Avlnode *pptr[MAX_TREE_DEPTH]; + unsigned char pdir[MAX_TREE_DEPTH]; int depth = 0; if ( *root == NULL )