pike.git
/
src
/
rbtree_low.h
version
»
Context lines:
10
20
40
80
file
none
3
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); \