pike.git / src / rbtree_low.h

version» Context lines:

pike.git/src/rbtree_low.h:1:   /* The lower level api for using rbtree. This is in a separate file    * since it's quite macro heavy.    *    * Created 2001-04-27 by Martin Stjernholm    * -  * $Id: rbtree_low.h,v 1.2 2002/08/15 14:49:25 marcus Exp $ +  * $Id: rbtree_low.h,v 1.3 2002/08/28 13:42:52 grubba Exp $    */      #ifndef RBTREE_LOW_H   #define RBTREE_LOW_H      #include "rbtree.h"      /* A sliced stack is used to track the way down in a tree, so we can    * back up again easily while rebalancing it. The first slice is    * allocated on the C stack. */
pike.git/src/rbtree_low.h:46:   void rbstack_assign (struct rbstack_ptr *target, struct rbstack_ptr *source);   void rbstack_copy (struct rbstack_ptr *target, struct rbstack_ptr *source);   void rbstack_shift (struct rbstack_ptr rbstack,    struct rb_node_hdr *oldbase,    struct rb_node_hdr *newbase);      #define RBSTACK_INIT(rbstack) \    struct rbstack_slice PIKE_CONCAT3 (_, rbstack, _top_) = { \    DO_IF_RB_STATS (0 COMMA 0 COMMA) \    NULL, \ -  {} \ +  {NULL,} \    }; \    struct rbstack_ptr rbstack = { \    (PIKE_CONCAT3 (_, rbstack, _top_).up = NULL, \    &PIKE_CONCAT3 (_, rbstack, _top_)), \    0 \    }      #define RBSTACK_PUSH(rbstack, node) do { \    if ((rbstack).ssp < STACK_SLICE_SIZE) { \    (rbstack).slice->stack[(rbstack).ssp++] = (node); \