Merge branch 'Fast-Fix' of lirent/libcdsb into develop
This commit is contained in:
commit
363906cd30
@ -21,10 +21,10 @@ extern void* libcdsb_builtin_rbtree_node_create(void* value, rbnode_t* paren
|
||||
extern void libcdsb_builtin_rbtree_node_fixup (rbnode_t** root, rbnode_t* node) Nonnull__(1,2);
|
||||
extern rbnode_t* libcdsb_builtin_rbtree_node_delete(rbnode_t** root, rbnode_t* node) Nonnull__(1,2);
|
||||
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_inorder (rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_preorder (rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_postorder (rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_breath_first(rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_inorder (rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_preorder (rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_postorder (rbnode_t** root, bool reverse);
|
||||
extern stack_t libcdsb_builtin_rbtree_iter_breadth_first(rbnode_t** root, bool reverse);
|
||||
|
||||
#define rbnode_empty ((rbnode_t*)LIBCDSB_BUILTIN_RBTREE_NODE_EMPTY)
|
||||
#define rbnode_create(v, p, c) ((rbnode_t*)libcdsb_builtin_rbtree_node_create(v, p, c, sizeof(rbnode_t)))
|
||||
@ -34,9 +34,9 @@ extern stack_t libcdsb_builtin_rbtree_iter_breath_first(rbnode_t** root, bool re
|
||||
#define rbnode_is_empty(n) ((n) == rbnode_empty)
|
||||
#define rbnode_is_root(n) rbnode_is_empty((n)->parent)
|
||||
|
||||
#define rbiter_inorder libcdsb_builtin_rbtree_iter_inorder
|
||||
#define rbiter_preorder libcdsb_builtin_rbtree_iter_preorder
|
||||
#define rbiter_postorder libcdsb_builtin_rbtree_iter_postorder
|
||||
#define rbiter_breath_first libcdsb_builtin_rbtree_iter_breath_first
|
||||
#define rbiter_inorder libcdsb_builtin_rbtree_iter_inorder
|
||||
#define rbiter_preorder libcdsb_builtin_rbtree_iter_preorder
|
||||
#define rbiter_postorder libcdsb_builtin_rbtree_iter_postorder
|
||||
#define rbiter_breadth_first libcdsb_builtin_rbtree_iter_breadth_first
|
||||
|
||||
#endif /* LIBCDSB_SRC_INTERNAL_RBTREE_H */
|
||||
|
@ -89,7 +89,7 @@ int libcdsb_map_foreach(map_t* x, void* data, map_access_callback callback, rbfo
|
||||
|
||||
default:
|
||||
case RBFOREACH_BREADTH_FIRST: if (reverse || flush) {
|
||||
iter = miter_breath_first(&x->root, type&RBFOREACH_REVERSE);
|
||||
iter = miter_breadth_first(&x->root, type&RBFOREACH_REVERSE);
|
||||
break;
|
||||
} else return libcdsb_builtin_foreach(x, data, callback);
|
||||
}
|
||||
|
@ -35,9 +35,9 @@ static_assert(offsetof(struct libcdsb_set, type) == offsetof(struct l
|
||||
#define mnode_is_empty(n) ((n) == mnode_empty)
|
||||
#define mnode_is_root(n) mnode_is_empty((n)->parent)
|
||||
|
||||
#define miter_inorder(x, reverse) rbiter_inorder((void*)x, reverse)
|
||||
#define miter_preorder(x, reverse) rbiter_preorder((void*)x, reverse)
|
||||
#define miter_postorder(x, reverse) rbiter_postorder((void*)x, reverse)
|
||||
#define miter_breath_first(x, reverse) rbiter_breath_first((void*)x, reverse)
|
||||
#define miter_inorder(x, reverse) rbiter_inorder((void*)x, reverse)
|
||||
#define miter_preorder(x, reverse) rbiter_preorder((void*)x, reverse)
|
||||
#define miter_postorder(x, reverse) rbiter_postorder((void*)x, reverse)
|
||||
#define miter_breadth_first(x, reverse) rbiter_breadth_first((void*)x, reverse)
|
||||
|
||||
#endif /* LIBCDSB_SRC_MAP_INCLUDE_H */
|
||||
|
@ -316,7 +316,7 @@ stack_t libcdsb_builtin_rbtree_iter_postorder(rbnode_t** root, bool reverse) {
|
||||
}
|
||||
|
||||
|
||||
stack_t libcdsb_builtin_rbtree_iter_breath_first(rbnode_t** root, bool reverse) {
|
||||
stack_t libcdsb_builtin_rbtree_iter_breadth_first(rbnode_t** root, bool reverse) {
|
||||
|
||||
stack_t z, *top, *bot, *cur;
|
||||
rbnode_t* n;
|
||||
|
@ -86,10 +86,10 @@ int libcdsb_vset_foreach(set_t* x, void* data, vset_access_callback callback, rb
|
||||
case RBFOREACH_INORDER: iter = rbiter_inorder (&x->root, reverse); break;
|
||||
case RBFOREACH_PREORDER: iter = rbiter_preorder (&x->root, reverse); break;
|
||||
case RBFOREACH_POSTORDER: iter = rbiter_postorder(&x->root, reverse); break;
|
||||
|
||||
|
||||
default:
|
||||
case RBFOREACH_BREADTH_FIRST: if (reverse || flush) {
|
||||
iter = rbiter_breath_first(&x->root, type&RBFOREACH_REVERSE);
|
||||
iter = rbiter_breadth_first(&x->root, type&RBFOREACH_REVERSE);
|
||||
break;
|
||||
} else return libcdsb_builtin_foreach(x, data, callback);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user