54 sz =
sizeof(*ib_bh) + (sizeof_elem * max_elems);
57 memset(ib_bh, 0x0, sz);
59 ib_bh->compare = compare;
60 ib_bh->max_elems = max_elems;
61 ib_bh->sizeof_elem = sizeof_elem;
103 i > 0 && ib_bh->
compare(ptr, elem) > 0;
104 i >>= 1, ptr =
ib_bh_get(ib_bh, i >> 1)) {
145 if (ib_bh->
compare(last, ptr) <= 0) {
158 ptr = (byte*)
ib_bh_get(ib_bh, parent << 1);
UNIV_INLINE void * ib_bh_get(ib_bh_t *ib_bh, ulint i)
UNIV_INLINE ibool ib_bh_is_full(const ib_bh_t *ib_bh)
int(* ib_bh_cmp_t)(const void *p1, const void *p2)
UNIV_INTERN void * ut_malloc(ulint n)
UNIV_INTERN ib_bh_t * ib_bh_create(ib_bh_cmp_t compare, ulint sizeof_elem, ulint max_elems)
UNIV_INLINE void * ib_bh_set(ib_bh_t *ib_bh, ulint i, const void *elem)
UNIV_INLINE void * ib_bh_last(ib_bh_t *ib_bh)
UNIV_INLINE ibool ib_bh_is_empty(const ib_bh_t *ib_bh)
UNIV_INTERN void * ib_bh_push(ib_bh_t *ib_bh, const void *elem)
UNIV_INTERN void ib_bh_pop(ib_bh_t *ib_bh)
UNIV_INTERN void ut_free(void *ptr)
UNIV_INLINE ulint ib_bh_size(const ib_bh_t *ib_bh)
UNIV_INLINE void * ib_bh_first(ib_bh_t *ib_bh)
UNIV_INTERN void ib_bh_free(ib_bh_t *ib_bh)