HDONE_ERROR(H5E_SYM, H5E_CANTDEC, FAIL, "unable to decrement refcount on newly created object")
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * 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: H5G.c
 *      Jul 18 1997
 *      Robb Matzke <matzke@llnl.gov>
 *
 * Purpose: Symbol table functions.  The functions that begin with
 *      `H5G_stab_' don't understand the naming system; they operate
 *      on a single symbol table at a time.
 *
 *      The functions that begin with `H5G_node_' operate on the leaf
 *      nodes of a symbol table B-tree.  They should be defined in
 *      the H5Gnode.c file.
 *
 *      The remaining functions know how to traverse the group
 *      directed graph.
 *
 * Names:   Object names are a slash-separated list of components.  If
 *      the name begins with a slash then it's absolute, otherwise
 *      it's relative ("/foo/bar" is absolute while "foo/bar" is
 *      relative).  Multiple consecutive slashes are treated as
 *      single slashes and trailing slashes are ignored.  The special
 *      case `/' is the root group.  Every file has a root group.
 *
 *      API functions that look up names take a location ID and a
 *      name.  The location ID can be a file ID or a group ID and the
 *      name can be relative or absolute.
 *
 *              +--------------+----------- +--------------------------------+
 *      | Location ID  | Name       | Meaning                        |
 *              +--------------+------------+--------------------------------+
 *      | File ID      | "/foo/bar" | Find `foo' within `bar' within |
 *      |              |            | the root group of the specified|
 *      |              |            | file.                          |
 *              +--------------+------------+--------------------------------+
 *      | File ID      | "foo/bar"  | Find `foo' within `bar' within |
 *      |              |            | the root group of the specified|
 *      |              |            | file.                          |