if(NULL == (child_bt_ud.bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, child_bt_ud.addr, &cache_udata, H5AC__NO_FLAGS_SET)))
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * Copyright by the Board of Trustees of the University of Illinois.         *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the COPYING file, which can be found at the root of the source code       *
 * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
 * If you do not have access to either file, you may request a copy from     *
 * help@hdfgroup.org.                                                        *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*-------------------------------------------------------------------------
 *
 * Created:     H5B.c
 *          Jul 10 1997
 *          Robb Matzke <matzke@llnl.gov>
 *
 * Purpose:     Implements balanced, sibling-linked, N-ary trees
 *          capable of storing any type of data with unique key
 *          values.
 *
 *          A B-link-tree is a balanced tree where each node has
 *          a pointer to its left and right siblings.  A
 *          B-link-tree is a rooted tree having the following
 *          properties:
 *
 *          1. Every node, x, has the following fields:
 *
 *             a. level[x], the level in the tree at which node
 *                x appears.  Leaf nodes are at level zero.
 *
 *             b. n[x], the number of children pointed to by the
 *                node.  Internal nodes point to subtrees while
 *                leaf nodes point to arbitrary data.
 *
 *             c. The child pointers themselves, child[x,i] such
 *                that 0 <= i < n[x].
 *
 *             d. n[x]+1 key values stored in increasing
 *                order:
 *
 *              key[x,0] < key[x,1] < ... < key[x,n[x]].
 *
 *             e. left[x] is a pointer to the node's left sibling
 *                or the null pointer if this is the left-most
 *                node at this level in the tree.
 *
 *             f. right[x] is a pointer to the node's right
 *                sibling or the null pointer if this is the