函数源码 |
Source File:lib\btree.c |
Create Date:2022-07-27 07:50:45 |
首页 | Copyright©Brick |
675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 | static size_t __btree_for_each( struct btree_head *head, struct btree_geo *geo, unsigned long *node, unsigned long opaque, void (*func)( void *elem, unsigned long opaque, unsigned long *key, size_t index, void *func2), void *func2, int reap, int height, size_t count) { int i; unsigned long *child; for (i = 0; i < geo->no_pairs; i++) { child = bval(geo, node, i); if (!child) break ; if (height > 1) count = __btree_for_each(head, geo, child, opaque, func, func2, reap, height - 1, count); else func(child, opaque, bkey(geo, node, i), count++, func2); } if (reap) mempool_free(node, head->mempool); return count; } |