summaryrefslogtreecommitdiffstats
path: root/src/H5Gnode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Gnode.c')
-rw-r--r--src/H5Gnode.c920
1 files changed, 460 insertions, 460 deletions
diff --git a/src/H5Gnode.c b/src/H5Gnode.c
index be021dd..5eb24d7 100644
--- a/src/H5Gnode.c
+++ b/src/H5Gnode.c
@@ -1,110 +1,110 @@
/*-------------------------------------------------------------------------
- * Copyright (C) 1997 National Center for Supercomputing Applications.
- * All rights reserved.
+ * Copyright (C) 1997 National Center for Supercomputing Applications.
+ * All rights reserved.
*
*-------------------------------------------------------------------------
*
- * Created: snode.c
- * Jun 26 1997
- * Robb Matzke <matzke@llnl.gov>
+ * Created: snode.c
+ * Jun 26 1997
+ * Robb Matzke <matzke@llnl.gov>
*
- * Purpose: Functions for handling symbol table nodes. A
- * symbol table node is a small collection of symbol
- * table entries. A B-tree usually points to the
- * symbol table nodes for any given symbol table.
+ * Purpose: Functions for handling symbol table nodes. A
+ * symbol table node is a small collection of symbol
+ * table entries. A B-tree usually points to the
+ * symbol table nodes for any given symbol table.
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
-#define H5G_PACKAGE /*suppress error message about including H5Gpkg.h */
+#define H5G_PACKAGE /*suppress error message about including H5Gpkg.h */
/* Packages needed by this file... */
-#include <H5private.h> /*library */
-#include <H5ACprivate.h> /*cache */
-#include <H5Bprivate.h> /*B-link trees */
-#include <H5Eprivate.h> /*error handling */
-#include <H5Gpkg.h> /*me */
-#include <H5Hprivate.h> /*heap */
-#include <H5MFprivate.h> /*file memory management */
-#include <H5MMprivate.h> /*core memory management */
-#include <H5Oprivate.h> /*header messages */
-
-#define PABLO_MASK H5G_node_mask
+#include <H5private.h> /*library */
+#include <H5ACprivate.h> /*cache */
+#include <H5Bprivate.h> /*B-link trees */
+#include <H5Eprivate.h> /*error handling */
+#include <H5Gpkg.h> /*me */
+#include <H5Hprivate.h> /*heap */
+#include <H5MFprivate.h> /*file memory management */
+#include <H5MMprivate.h> /*core memory management */
+#include <H5Oprivate.h> /*header messages */
+
+#define PABLO_MASK H5G_node_mask
/* PRIVATE PROTOTYPES */
-static herr_t H5G_node_decode_key(H5F_t *f, H5B_t *bt, uint8 *raw,
- void *_key);
-static herr_t H5G_node_encode_key(H5F_t *f, H5B_t *bt, uint8 *raw,
- void *_key);
-static size_t H5G_node_size(H5F_t *f);
-static herr_t H5G_node_create(H5F_t *f, H5B_ins_t op, void *_lt_key,
- void *_udata, void *_rt_key,
- haddr_t *addr /*out */ );
-static herr_t H5G_node_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr,
- H5G_node_t *sym);
+static herr_t H5G_node_decode_key(H5F_t *f, H5B_t *bt, uint8 *raw,
+ void *_key);
+static herr_t H5G_node_encode_key(H5F_t *f, H5B_t *bt, uint8 *raw,
+ void *_key);
+static size_t H5G_node_size(H5F_t *f);
+static herr_t H5G_node_create(H5F_t *f, H5B_ins_t op, void *_lt_key,
+ void *_udata, void *_rt_key,
+ haddr_t *addr /*out */ );
+static herr_t H5G_node_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr,
+ H5G_node_t *sym);
static H5G_node_t *H5G_node_load(H5F_t *f, const haddr_t *addr,
- const void *_udata1, void *_udata2);
-static intn H5G_node_cmp2(H5F_t *f, void *_lt_key, void *_udata,
- void *_rt_key);
-static intn H5G_node_cmp3(H5F_t *f, void *_lt_key, void *_udata,
- void *_rt_key);
-static herr_t H5G_node_found(H5F_t *f, const haddr_t *addr,
- const void *_lt_key, void *_udata,
- const void *_rt_key);
-static H5B_ins_t H5G_node_insert(H5F_t *f, const haddr_t *addr,
- void *_lt_key, hbool_t *lt_key_changed,
- void *_md_key, void *_udata,
- void *_rt_key, hbool_t *rt_key_changed,
- haddr_t *new_node /*out */ );
-static herr_t H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata);
-static size_t H5G_node_sizeof_rkey(H5F_t *f, const void *_udata);
+ const void *_udata1, void *_udata2);
+static intn H5G_node_cmp2(H5F_t *f, void *_lt_key, void *_udata,
+ void *_rt_key);
+static intn H5G_node_cmp3(H5F_t *f, void *_lt_key, void *_udata,
+ void *_rt_key);
+static herr_t H5G_node_found(H5F_t *f, const haddr_t *addr,
+ const void *_lt_key, void *_udata,
+ const void *_rt_key);
+static H5B_ins_t H5G_node_insert(H5F_t *f, const haddr_t *addr,
+ void *_lt_key, hbool_t *lt_key_changed,
+ void *_md_key, void *_udata,
+ void *_rt_key, hbool_t *rt_key_changed,
+ haddr_t *new_node /*out */ );
+static herr_t H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata);
+static size_t H5G_node_sizeof_rkey(H5F_t *f, const void *_udata);
/* H5G inherits cache-like properties from H5AC */
-const H5AC_class_t H5AC_SNODE[1] =
+const H5AC_class_t H5AC_SNODE[1] =
{
{
- H5AC_SNODE_ID,
+ H5AC_SNODE_ID,
(void *(*)(H5F_t *, const haddr_t *, const void *, void *)) H5G_node_load,
(herr_t (*)(H5F_t *, hbool_t, const haddr_t *, void *)) H5G_node_flush,
}};
/* H5G inherits B-tree like properties from H5B */
-H5B_class_t H5B_SNODE[1] =
+H5B_class_t H5B_SNODE[1] =
{
{
- H5B_SNODE_ID, /*id */
- sizeof(H5G_node_key_t), /*sizeof_nkey */
- H5G_node_sizeof_rkey, /*get_sizeof_rkey */
- H5G_node_create, /*new */
- H5G_node_cmp2, /*cmp2 */
- H5G_node_cmp3, /*cmp3 */
- H5G_node_found, /*found */
- H5G_node_insert, /*insert */
- TRUE, /*follow min branch? */
- TRUE, /*follow max branch? */
- H5G_node_list, /*list */
- H5G_node_decode_key, /*decode */
- H5G_node_encode_key, /*encode */
+ H5B_SNODE_ID, /*id */
+ sizeof(H5G_node_key_t), /*sizeof_nkey */
+ H5G_node_sizeof_rkey, /*get_sizeof_rkey */
+ H5G_node_create, /*new */
+ H5G_node_cmp2, /*cmp2 */
+ H5G_node_cmp3, /*cmp3 */
+ H5G_node_found, /*found */
+ H5G_node_insert, /*insert */
+ TRUE, /*follow min branch? */
+ TRUE, /*follow max branch? */
+ H5G_node_list, /*list */
+ H5G_node_decode_key, /*decode */
+ H5G_node_encode_key, /*encode */
}};
/* Interface initialization */
-static intn interface_initialize_g = FALSE;
-#define INTERFACE_INIT NULL
+static intn interface_initialize_g = FALSE;
+#define INTERFACE_INIT NULL
/*-------------------------------------------------------------------------
- * Function: H5G_node_sizeof_rkey
+ * Function: H5G_node_sizeof_rkey
*
- * Purpose: Returns the size of a raw B-link tree key for the specified
- * file.
+ * Purpose: Returns the size of a raw B-link tree key for the specified
+ * file.
*
- * Return: Success: Size of the key.
+ * Return: Success: Size of the key.
*
- * Failure: never fails
+ * Failure: never fails
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jul 14 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jul 14 1997
*
* Modifications:
*
@@ -113,21 +113,21 @@ static intn interface_initialize_g = FALSE;
static size_t
H5G_node_sizeof_rkey(H5F_t *f, const void *udata __attribute__((unused)))
{
- return H5F_SIZEOF_SIZE(f); /*the name offset */
+ return H5F_SIZEOF_SIZE(f); /*the name offset */
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_decode_key
+ * Function: H5G_node_decode_key
*
- * Purpose: Decodes a raw key into a native key.
+ * Purpose: Decodes a raw key into a native key.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jul 8 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jul 8 1997
*
* Modifications:
*
@@ -136,7 +136,7 @@ H5G_node_sizeof_rkey(H5F_t *f, const void *udata __attribute__((unused)))
static herr_t
H5G_node_decode_key(H5F_t *f, H5B_t *bt, uint8 *raw, void *_key)
{
- H5G_node_key_t *key = (H5G_node_key_t *) _key;
+ H5G_node_key_t *key = (H5G_node_key_t *) _key;
FUNC_ENTER(H5G_node_decode_key, FAIL);
@@ -150,17 +150,17 @@ H5G_node_decode_key(H5F_t *f, H5B_t *bt, uint8 *raw, void *_key)
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_encode_key
+ * Function: H5G_node_encode_key
*
- * Purpose: Encodes a native key into a raw key.
+ * Purpose: Encodes a native key into a raw key.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jul 8 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jul 8 1997
*
* Modifications:
*
@@ -169,7 +169,7 @@ H5G_node_decode_key(H5F_t *f, H5B_t *bt, uint8 *raw, void *_key)
static herr_t
H5G_node_encode_key(H5F_t *f, H5B_t *bt, uint8 *raw, void *_key)
{
- H5G_node_key_t *key = (H5G_node_key_t *) _key;
+ H5G_node_key_t *key = (H5G_node_key_t *) _key;
FUNC_ENTER(H5G_node_encode_key, FAIL);
@@ -183,17 +183,17 @@ H5G_node_encode_key(H5F_t *f, H5B_t *bt, uint8 *raw, void *_key)
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_size
+ * Function: H5G_node_size
*
- * Purpose: Returns the total size of a symbol table node.
+ * Purpose: Returns the total size of a symbol table node.
*
- * Return: Success: Total size of the node in bytes.
+ * Return: Success: Total size of the node in bytes.
*
- * Failure: Never fails.
+ * Failure: Never fails.
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -203,25 +203,25 @@ static size_t
H5G_node_size(H5F_t *f)
{
return H5G_NODE_SIZEOF_HDR(f) +
- (2 * H5G_NODE_K(f)) * H5G_SIZEOF_ENTRY(f);
+ (2 * H5G_NODE_K(f)) * H5G_SIZEOF_ENTRY(f);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_create
+ * Function: H5G_node_create
*
- * Purpose: Creates a new empty symbol table node. This function is
- * called by the B-tree insert function for an empty tree. It
- * is also called internally to split a symbol node with LT_KEY
- * and RT_KEY null pointers.
+ * Purpose: Creates a new empty symbol table node. This function is
+ * called by the B-tree insert function for an empty tree. It
+ * is also called internally to split a symbol node with LT_KEY
+ * and RT_KEY null pointers.
*
- * Return: Success: SUCCEED. The address of symbol table node is
- * returned through the ADDR argument.
+ * Return: Success: SUCCEED. The address of symbol table node is
+ * returned through the ADDR argument.
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -229,13 +229,13 @@ H5G_node_size(H5F_t *f)
*/
static herr_t
H5G_node_create(H5F_t *f, H5B_ins_t op,
- void *_lt_key, void *_udata, void *_rt_key,
- haddr_t *addr /*out */ )
+ void *_lt_key, void *_udata, void *_rt_key,
+ haddr_t *addr /*out */ )
{
- H5G_node_key_t *lt_key = (H5G_node_key_t *) _lt_key;
- H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
- H5G_node_t *sym = NULL;
- size_t size = 0;
+ H5G_node_key_t *lt_key = (H5G_node_key_t *) _lt_key;
+ H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
+ H5G_node_t *sym = NULL;
+ size_t size = 0;
FUNC_ENTER(H5G_node_create, FAIL);
@@ -248,17 +248,17 @@ H5G_node_create(H5F_t *f, H5B_ins_t op,
sym = H5MM_xcalloc(1, sizeof(H5G_node_t));
size = H5G_node_size(f);
if (H5MF_alloc(f, H5MF_META, size, addr /*out */ ) < 0) {
- H5MM_xfree(sym);
- HRETURN_ERROR(H5E_SYM, H5E_CANTINIT, FAIL,
- "unable to allocate file space");
+ H5MM_xfree(sym);
+ HRETURN_ERROR(H5E_SYM, H5E_CANTINIT, FAIL,
+ "unable to allocate file space");
}
sym->dirty = TRUE;
sym->entry = H5MM_xcalloc(2 * H5G_NODE_K(f), sizeof(H5G_entry_t));
if (H5AC_set(f, H5AC_SNODE, addr, sym) < 0) {
- H5MM_xfree(sym->entry);
- H5MM_xfree(sym);
- HRETURN_ERROR(H5E_SYM, H5E_CANTINIT, FAIL,
- "unable to cache symbol table leaf node");
+ H5MM_xfree(sym->entry);
+ H5MM_xfree(sym);
+ HRETURN_ERROR(H5E_SYM, H5E_CANTINIT, FAIL,
+ "unable to cache symbol table leaf node");
}
/*
* The left and right symbols in an empty tree are both the
@@ -267,25 +267,25 @@ H5G_node_create(H5F_t *f, H5B_ins_t op,
* that there are no symbols.
*/
if (lt_key)
- lt_key->offset = 0;
+ lt_key->offset = 0;
if (rt_key)
- rt_key->offset = 0;
+ rt_key->offset = 0;
FUNC_LEAVE(SUCCEED);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_flush
+ * Function: H5G_node_flush
*
- * Purpose: Flush a symbol table node to disk.
+ * Purpose: Flush a symbol table node to disk.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -293,12 +293,12 @@ H5G_node_create(H5F_t *f, H5B_ins_t op,
*/
static herr_t
H5G_node_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr,
- H5G_node_t *sym)
+ H5G_node_t *sym)
{
- uint8 *buf = NULL, *p = NULL;
- size_t size;
- herr_t status;
- int i;
+ uint8 *buf = NULL, *p = NULL;
+ size_t size;
+ herr_t status;
+ int i;
FUNC_ENTER(H5G_node_flush, FAIL);
@@ -313,64 +313,64 @@ H5G_node_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr,
* Look for dirty entries and set the node dirty flag.
*/
for (i = 0; i < sym->nsyms; i++) {
- if (sym->entry[i].dirty)
- sym->dirty = TRUE;
+ if (sym->entry[i].dirty)
+ sym->dirty = TRUE;
}
/*
* Write the symbol node to disk.
*/
if (sym->dirty) {
- size = H5G_node_size(f);
- buf = p = H5MM_xmalloc(size);
+ size = H5G_node_size(f);
+ buf = p = H5MM_xmalloc(size);
- /* magic number */
- HDmemcpy(p, H5G_NODE_MAGIC, H5G_NODE_SIZEOF_MAGIC);
- p += 4;
+ /* magic number */
+ HDmemcpy(p, H5G_NODE_MAGIC, H5G_NODE_SIZEOF_MAGIC);
+ p += 4;
- /* version number */
- *p++ = H5G_NODE_VERS;
+ /* version number */
+ *p++ = H5G_NODE_VERS;
- /* reserved */
- *p++ = 0;
+ /* reserved */
+ *p++ = 0;
- /* number of symbols */
- UINT16ENCODE(p, sym->nsyms);
+ /* number of symbols */
+ UINT16ENCODE(p, sym->nsyms);
- /* entries */
- H5G_ent_encode_vec(f, &p, sym->entry, sym->nsyms);
- HDmemset(p, 0, size - (p - buf));
+ /* entries */
+ H5G_ent_encode_vec(f, &p, sym->entry, sym->nsyms);
+ HDmemset(p, 0, size - (p - buf));
- status = H5F_block_write(f, addr, size, buf);
- buf = H5MM_xfree(buf);
- if (status < 0)
- HRETURN_ERROR(H5E_SYM, H5E_WRITEERROR, FAIL,
- "unable to write symbol table node to "
- "the file");
+ status = H5F_block_write(f, addr, size, buf);
+ buf = H5MM_xfree(buf);
+ if (status < 0)
+ HRETURN_ERROR(H5E_SYM, H5E_WRITEERROR, FAIL,
+ "unable to write symbol table node to "
+ "the file");
}
/*
- * Destroy the symbol node? This might happen if the node is being
+ * Destroy the symbol node? This might happen if the node is being
* preempted from the cache.
*/
if (destroy) {
- sym->entry = H5MM_xfree(sym->entry);
- H5MM_xfree(sym);
+ sym->entry = H5MM_xfree(sym->entry);
+ H5MM_xfree(sym);
}
FUNC_LEAVE(SUCCEED);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_load
+ * Function: H5G_node_load
*
- * Purpose: Loads a symbol table node from the file.
+ * Purpose: Loads a symbol table node from the file.
*
- * Return: Success: Ptr to the new table.
+ * Return: Success: Ptr to the new table.
*
- * Failure: NULL
+ * Failure: NULL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -378,13 +378,13 @@ H5G_node_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr,
*/
static H5G_node_t *
H5G_node_load(H5F_t *f, const haddr_t *addr, const void *_udata1,
- void *_udata2)
+ void *_udata2)
{
- H5G_node_t *sym = NULL;
- size_t size = 0;
- uint8 *buf = NULL;
- const uint8 *p = NULL;
- H5G_node_t *ret_value = NULL; /*for error handling */
+ H5G_node_t *sym = NULL;
+ size_t size = 0;
+ uint8 *buf = NULL;
+ const uint8 *p = NULL;
+ H5G_node_t *ret_value = NULL; /*for error handling */
FUNC_ENTER(H5G_node_load, NULL);
@@ -405,20 +405,20 @@ H5G_node_load(H5F_t *f, const haddr_t *addr, const void *_udata1,
sym->entry = H5MM_xcalloc(2 * H5G_NODE_K(f), sizeof(H5G_entry_t));
if (H5F_block_read(f, addr, size, buf) < 0) {
- HGOTO_ERROR(H5E_SYM, H5E_READERROR, NULL,
- "unabel to read symbol table node");
+ HGOTO_ERROR(H5E_SYM, H5E_READERROR, NULL,
+ "unabel to read symbol table node");
}
/* magic */
if (HDmemcmp(p, H5G_NODE_MAGIC, H5G_NODE_SIZEOF_MAGIC)) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, NULL,
- "bad symbol table node signature");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, NULL,
+ "bad symbol table node signature");
}
p += 4;
/* version */
if (H5G_NODE_VERS != *p++) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, NULL,
- "bad symbol table node version");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, NULL,
+ "bad symbol table node version");
}
/* reserved */
p++;
@@ -428,8 +428,8 @@ H5G_node_load(H5F_t *f, const haddr_t *addr, const void *_udata1,
/* entries */
if (H5G_ent_decode_vec(f, &p, sym->entry, sym->nsyms) < 0) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, NULL,
- "unable to decode symbol table entries");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, NULL,
+ "unable to decode symbol table entries");
}
buf = H5MM_xfree(buf);
@@ -437,33 +437,33 @@ H5G_node_load(H5F_t *f, const haddr_t *addr, const void *_udata1,
done:
if (!ret_value) {
- buf = H5MM_xfree(buf);
- if (sym) {
- sym->entry = H5MM_xfree(sym->entry);
- sym = H5MM_xfree(sym);
- }
+ buf = H5MM_xfree(buf);
+ if (sym) {
+ sym->entry = H5MM_xfree(sym->entry);
+ sym = H5MM_xfree(sym);
+ }
}
FUNC_LEAVE(ret_value);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_cmp2
+ * Function: H5G_node_cmp2
*
- * Purpose: Compares two keys from a B-tree node (LT_KEY and RT_KEY).
- * The UDATA pointer supplies extra data not contained in the
- * keys (in this case, the heap address).
+ * Purpose: Compares two keys from a B-tree node (LT_KEY and RT_KEY).
+ * The UDATA pointer supplies extra data not contained in the
+ * keys (in this case, the heap address).
*
- * Return: Success: negative if LT_KEY is less than RT_KEY.
+ * Return: Success: negative if LT_KEY is less than RT_KEY.
*
- * positive if LT_KEY is greater than RT_KEY.
+ * positive if LT_KEY is greater than RT_KEY.
*
- * zero if LT_KEY and RT_KEY are equal.
+ * zero if LT_KEY and RT_KEY are equal.
*
- * Failure: FAIL (same as LT_KEY<RT_KEY)
+ * Failure: FAIL (same as LT_KEY<RT_KEY)
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -472,11 +472,11 @@ H5G_node_load(H5F_t *f, const haddr_t *addr, const void *_udata1,
static intn
H5G_node_cmp2(H5F_t *f, void *_lt_key, void *_udata, void *_rt_key)
{
- H5G_bt_ud1_t *udata = (H5G_bt_ud1_t *) _udata;
- H5G_node_key_t *lt_key = (H5G_node_key_t *) _lt_key;
- H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
- const char *s1, *s2;
- intn cmp;
+ H5G_bt_ud1_t *udata = (H5G_bt_ud1_t *) _udata;
+ H5G_node_key_t *lt_key = (H5G_node_key_t *) _lt_key;
+ H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
+ const char *s1, *s2;
+ intn cmp;
FUNC_ENTER(H5G_node_cmp2, FAIL);
@@ -485,12 +485,12 @@ H5G_node_cmp2(H5F_t *f, void *_lt_key, void *_udata, void *_rt_key)
assert(rt_key);
if (NULL == (s1 = H5H_peek(f, &(udata->heap_addr), lt_key->offset))) {
- HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
- "unable to read symbol name");
+ HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
+ "unable to read symbol name");
}
if (NULL == (s2 = H5H_peek(f, &(udata->heap_addr), rt_key->offset))) {
- HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
- "unable to read symbol name");
+ HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
+ "unable to read symbol name");
}
cmp = HDstrcmp(s1, s2);
@@ -498,27 +498,27 @@ H5G_node_cmp2(H5F_t *f, void *_lt_key, void *_udata, void *_rt_key)
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_cmp3
+ * Function: H5G_node_cmp3
*
- * Purpose: Compares two keys from a B-tree node (LT_KEY and RT_KEY)
- * against another key (not necessarily the same type)
- * pointed to by UDATA.
+ * Purpose: Compares two keys from a B-tree node (LT_KEY and RT_KEY)
+ * against another key (not necessarily the same type)
+ * pointed to by UDATA.
*
- * Return: Success: negative if the UDATA key is less than
- * or equal to the LT_KEY
+ * Return: Success: negative if the UDATA key is less than
+ * or equal to the LT_KEY
*
- * positive if the UDATA key is greater
- * than the RT_KEY.
+ * positive if the UDATA key is greater
+ * than the RT_KEY.
*
- * zero if the UDATA key falls between
- * the LT_KEY (exclusive) and the
- * RT_KEY (inclusive).
+ * zero if the UDATA key falls between
+ * the LT_KEY (exclusive) and the
+ * RT_KEY (inclusive).
*
- * Failure: FAIL (same as UDATA < LT_KEY)
+ * Failure: FAIL (same as UDATA < LT_KEY)
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -527,55 +527,55 @@ H5G_node_cmp2(H5F_t *f, void *_lt_key, void *_udata, void *_rt_key)
static intn
H5G_node_cmp3(H5F_t *f, void *_lt_key, void *_udata, void *_rt_key)
{
- H5G_bt_ud1_t *udata = (H5G_bt_ud1_t *) _udata;
- H5G_node_key_t *lt_key = (H5G_node_key_t *) _lt_key;
- H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
- const char *s;
+ H5G_bt_ud1_t *udata = (H5G_bt_ud1_t *) _udata;
+ H5G_node_key_t *lt_key = (H5G_node_key_t *) _lt_key;
+ H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
+ const char *s;
FUNC_ENTER(H5G_node_cmp3, FAIL);
/* left side */
if (NULL == (s = H5H_peek(f, &(udata->heap_addr), lt_key->offset))) {
- HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
- "unable to read symbol name");
+ HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
+ "unable to read symbol name");
}
if (HDstrcmp(udata->name, s) <= 0)
- HRETURN(-1);
+ HRETURN(-1);
/* right side */
if (NULL == (s = H5H_peek(f, &(udata->heap_addr), rt_key->offset))) {
- HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
- "unable to read symbol name");
+ HRETURN_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
+ "unable to read symbol name");
}
if (HDstrcmp(udata->name, s) > 0)
- HRETURN(1);
+ HRETURN(1);
FUNC_LEAVE(0);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_found
+ * Function: H5G_node_found
*
- * Purpose: The B-tree search engine has found the symbol table node
- * which contains the requested symbol if the symbol exists.
- * This function should examine that node for the symbol and
- * return information about the symbol through the UDATA
- * structure which contains the symbol name on function
- * entry.
+ * Purpose: The B-tree search engine has found the symbol table node
+ * which contains the requested symbol if the symbol exists.
+ * This function should examine that node for the symbol and
+ * return information about the symbol through the UDATA
+ * structure which contains the symbol name on function
+ * entry.
*
- * If the operation flag in UDATA is H5G_OPER_FIND, then
- * the entry is copied from the symbol table to the UDATA
- * entry field. Otherwise the entry is copied from the
- * UDATA entry field to the symbol table.
+ * If the operation flag in UDATA is H5G_OPER_FIND, then
+ * the entry is copied from the symbol table to the UDATA
+ * entry field. Otherwise the entry is copied from the
+ * UDATA entry field to the symbol table.
*
- * Return: Success: SUCCEED if found and data returned through
- * the UDATA pointer.
+ * Return: Success: SUCCEED if found and data returned through
+ * the UDATA pointer.
*
- * Failure: FAIL if not found.
+ * Failure: FAIL if not found.
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 23 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 23 1997
*
* Modifications:
*
@@ -583,13 +583,13 @@ H5G_node_cmp3(H5F_t *f, void *_lt_key, void *_udata, void *_rt_key)
*/
static herr_t
H5G_node_found(H5F_t *f, const haddr_t *addr, const void *_lt_key,
- void *_udata, const void *_rt_key)
+ void *_udata, const void *_rt_key)
{
- H5G_bt_ud1_t *bt_udata = (H5G_bt_ud1_t *) _udata;
- H5G_node_t *sn = NULL;
- intn lt = 0, idx = 0, rt, cmp = 1;
- const char *s;
- herr_t ret_value = FAIL;
+ H5G_bt_ud1_t *bt_udata = (H5G_bt_ud1_t *) _udata;
+ H5G_node_t *sn = NULL;
+ intn lt = 0, idx = 0, rt, cmp = 1;
+ const char *s;
+ herr_t ret_value = FAIL;
FUNC_ENTER(H5G_node_found, FAIL);
@@ -604,86 +604,86 @@ H5G_node_found(H5F_t *f, const haddr_t *addr, const void *_lt_key,
* Load the symbol table node for exclusive access.
*/
if (NULL == (sn = H5AC_protect(f, H5AC_SNODE, addr, NULL, NULL))) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, FAIL,
- "unable to protect symbol table node");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, FAIL,
+ "unable to protect symbol table node");
}
/*
* Binary search.
*/
rt = sn->nsyms;
while (lt < rt && cmp) {
- idx = (lt + rt) / 2;
- if (NULL == (s = H5H_peek(f, &(bt_udata->heap_addr),
- sn->entry[idx].name_off))) {
- HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
- "unable to read symbol name");
- }
- cmp = HDstrcmp(bt_udata->name, s);
-
- if (cmp < 0) {
- rt = idx;
- } else {
- lt = idx + 1;
- }
+ idx = (lt + rt) / 2;
+ if (NULL == (s = H5H_peek(f, &(bt_udata->heap_addr),
+ sn->entry[idx].name_off))) {
+ HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
+ "unable to read symbol name");
+ }
+ cmp = HDstrcmp(bt_udata->name, s);
+
+ if (cmp < 0) {
+ rt = idx;
+ } else {
+ lt = idx + 1;
+ }
}
if (cmp)
- HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "not found");
+ HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "not found");
switch (bt_udata->operation) {
case H5G_OPER_FIND:
- /*
- * The caller is querying the symbol entry. Return just a pointer to
- * the entry. The pointer is valid until the next call to H5AC.
- */
- bt_udata->ent = sn->entry[idx];
- break;
+ /*
+ * The caller is querying the symbol entry. Return just a pointer to
+ * the entry. The pointer is valid until the next call to H5AC.
+ */
+ bt_udata->ent = sn->entry[idx];
+ break;
default:
- HRETURN_ERROR(H5E_SYM, H5E_UNSUPPORTED, FAIL,
- "internal erorr (unknown symbol find operation)");
- break;
+ HRETURN_ERROR(H5E_SYM, H5E_UNSUPPORTED, FAIL,
+ "internal erorr (unknown symbol find operation)");
+ break;
}
ret_value = SUCCEED;
done:
if (sn && H5AC_unprotect(f, H5AC_SNODE, addr, sn) < 0) {
- HRETURN_ERROR(H5E_SYM, H5E_PROTECT, FAIL,
- "unable to release symbol table node");
+ HRETURN_ERROR(H5E_SYM, H5E_PROTECT, FAIL,
+ "unable to release symbol table node");
}
FUNC_LEAVE(ret_value);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_insert
+ * Function: H5G_node_insert
*
- * Purpose: The B-tree insertion engine has found the symbol table node
- * which should receive the new symbol/address pair. This
- * function adds it to that node unless it already existed.
+ * Purpose: The B-tree insertion engine has found the symbol table node
+ * which should receive the new symbol/address pair. This
+ * function adds it to that node unless it already existed.
*
- * If the node has no room for the symbol then the node is
- * split into two nodes. The original node contains the
- * low values and the new node contains the high values.
- * The new symbol table entry is added to either node as
- * appropriate. When a split occurs, this function will
- * write the maximum key of the low node to the MID buffer
- * and return the address of the new node.
+ * If the node has no room for the symbol then the node is
+ * split into two nodes. The original node contains the
+ * low values and the new node contains the high values.
+ * The new symbol table entry is added to either node as
+ * appropriate. When a split occurs, this function will
+ * write the maximum key of the low node to the MID buffer
+ * and return the address of the new node.
*
- * If the new key is larger than RIGHT then update RIGHT
- * with the new key.
+ * If the new key is larger than RIGHT then update RIGHT
+ * with the new key.
*
- * Return: Success: An insertion command for the caller, one of
- * the H5B_INS_* constants. The address of the
- * new node, if any, is returned through the
- * NEW_NODE argument. NEW_NODE might not be
- * initialized if the return value is
- * H5B_INS_NOOP.
+ * Return: Success: An insertion command for the caller, one of
+ * the H5B_INS_* constants. The address of the
+ * new node, if any, is returned through the
+ * NEW_NODE argument. NEW_NODE might not be
+ * initialized if the return value is
+ * H5B_INS_NOOP.
*
- * Failure: H5B_INS_ERROR, NEW_NODE might not be
- * initialized.
+ * Failure: H5B_INS_ERROR, NEW_NODE might not be
+ * initialized.
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 24 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 24 1997
*
* Modifications:
*
@@ -691,23 +691,23 @@ H5G_node_found(H5F_t *f, const haddr_t *addr, const void *_lt_key,
*/
static H5B_ins_t
H5G_node_insert(H5F_t *f, const haddr_t *addr,
- void *_lt_key, hbool_t *lt_key_changed,
- void *_md_key, void *_udata,
- void *_rt_key, hbool_t *rt_key_changed,
- haddr_t *new_node)
+ void *_lt_key, hbool_t *lt_key_changed,
+ void *_md_key, void *_udata,
+ void *_rt_key, hbool_t *rt_key_changed,
+ haddr_t *new_node)
{
- H5G_node_key_t *md_key = (H5G_node_key_t *) _md_key;
- H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
- H5G_bt_ud1_t *bt_udata = (H5G_bt_ud1_t *) _udata;
-
- H5G_node_t *sn = NULL, *snrt = NULL;
- size_t offset; /*offset of name in heap */
- const char *s;
- intn idx = -1, cmp = 1;
- intn lt = 0, rt; /*binary search cntrs */
- H5B_ins_t ret_value = H5B_INS_ERROR;
- H5G_node_t *insert_into = NULL; /*node that gets new entry */
- haddr_t insert_addr; /*address of that node */
+ H5G_node_key_t *md_key = (H5G_node_key_t *) _md_key;
+ H5G_node_key_t *rt_key = (H5G_node_key_t *) _rt_key;
+ H5G_bt_ud1_t *bt_udata = (H5G_bt_ud1_t *) _udata;
+
+ H5G_node_t *sn = NULL, *snrt = NULL;
+ size_t offset; /*offset of name in heap */
+ const char *s;
+ intn idx = -1, cmp = 1;
+ intn lt = 0, rt; /*binary search cntrs */
+ H5B_ins_t ret_value = H5B_INS_ERROR;
+ H5G_node_t *insert_into = NULL; /*node that gets new entry*/
+ haddr_t insert_addr; /*address of that node */
FUNC_ENTER(H5G_node_insert, H5B_INS_ERROR);
@@ -725,30 +725,30 @@ H5G_node_insert(H5F_t *f, const haddr_t *addr,
* Load the symbol node.
*/
if (NULL == (sn = H5AC_protect(f, H5AC_SNODE, addr, NULL, NULL))) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, H5B_INS_ERROR,
- "unable to protect symbol table node");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, H5B_INS_ERROR,
+ "unable to protect symbol table node");
}
/*
- * Where does the new symbol get inserted? We use a binary search.
+ * Where does the new symbol get inserted? We use a binary search.
*/
rt = sn->nsyms;
while (lt < rt) {
- idx = (lt + rt) / 2;
- if (NULL == (s = H5H_peek(f, &(bt_udata->heap_addr),
- sn->entry[idx].name_off))) {
- HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, H5B_INS_ERROR,
- "unable to read symbol name");
- }
- if (0 == (cmp = HDstrcmp(bt_udata->name, s))) {
- /*already present */
- HGOTO_ERROR(H5E_SYM, H5E_CANTINSERT, H5B_INS_ERROR,
- "symbol is already present in symbol table");
- }
- if (cmp < 0) {
- rt = idx;
- } else {
- lt = idx + 1;
- }
+ idx = (lt + rt) / 2;
+ if (NULL == (s = H5H_peek(f, &(bt_udata->heap_addr),
+ sn->entry[idx].name_off))) {
+ HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, H5B_INS_ERROR,
+ "unable to read symbol name");
+ }
+ if (0 == (cmp = HDstrcmp(bt_udata->name, s))) {
+ /*already present */
+ HGOTO_ERROR(H5E_SYM, H5E_CANTINSERT, H5B_INS_ERROR,
+ "symbol is already present in symbol table");
+ }
+ if (cmp < 0) {
+ rt = idx;
+ } else {
+ lt = idx + 1;
+ }
}
idx += cmp > 0 ? 1 : 0;
@@ -756,97 +756,97 @@ H5G_node_insert(H5F_t *f, const haddr_t *addr,
* Add the new name to the heap.
*/
offset = H5H_insert(f, &(bt_udata->heap_addr), HDstrlen(bt_udata->name)+1,
- bt_udata->name);
+ bt_udata->name);
bt_udata->ent.name_off = offset;
if (offset <= 0) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTINSERT, H5B_INS_ERROR,
- "unable to insert symbol name into heap");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTINSERT, H5B_INS_ERROR,
+ "unable to insert symbol name into heap");
}
if (sn->nsyms >= 2 * H5G_NODE_K(f)) {
- /*
- * The node is full. Split it into a left and right
- * node and return the address of the new right node (the
- * left node is at the same address as the original node).
- */
- ret_value = H5B_INS_RIGHT;
-
- /* The right node */
- if (H5G_node_create(f, H5B_INS_FIRST, NULL, NULL, NULL,
- new_node /*out */ ) < 0) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, H5B_INS_ERROR,
- "unable to split symbol table node");
- }
- if (NULL == (snrt = H5AC_find(f, H5AC_SNODE, new_node, NULL, NULL))) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, H5B_INS_ERROR,
- "unable to split symbol table node");
- }
- HDmemcpy(snrt->entry, sn->entry + H5G_NODE_K(f),
- H5G_NODE_K(f) * sizeof(H5G_entry_t));
- snrt->nsyms = H5G_NODE_K(f);
- snrt->dirty = TRUE;
-
- /* The left node */
- HDmemset(sn->entry + H5G_NODE_K(f), 0,
- H5G_NODE_K(f) * sizeof(H5G_entry_t));
- sn->nsyms = H5G_NODE_K(f);
- sn->dirty = TRUE;
-
- /* The middle key */
- md_key->offset = sn->entry[sn->nsyms - 1].name_off;
-
- /* Where to insert the new entry? */
- if (idx <= H5G_NODE_K(f)) {
- insert_into = sn;
- insert_addr = *addr;
- if (idx == H5G_NODE_K(f))
- md_key->offset = offset;
- } else {
- idx -= H5G_NODE_K(f);
- insert_into = snrt;
- insert_addr = *new_node;
- }
+ /*
+ * The node is full. Split it into a left and right
+ * node and return the address of the new right node (the
+ * left node is at the same address as the original node).
+ */
+ ret_value = H5B_INS_RIGHT;
+
+ /* The right node */
+ if (H5G_node_create(f, H5B_INS_FIRST, NULL, NULL, NULL,
+ new_node /*out */ ) < 0) {
+ HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, H5B_INS_ERROR,
+ "unable to split symbol table node");
+ }
+ if (NULL == (snrt = H5AC_find(f, H5AC_SNODE, new_node, NULL, NULL))) {
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, H5B_INS_ERROR,
+ "unable to split symbol table node");
+ }
+ HDmemcpy(snrt->entry, sn->entry + H5G_NODE_K(f),
+ H5G_NODE_K(f) * sizeof(H5G_entry_t));
+ snrt->nsyms = H5G_NODE_K(f);
+ snrt->dirty = TRUE;
+
+ /* The left node */
+ HDmemset(sn->entry + H5G_NODE_K(f), 0,
+ H5G_NODE_K(f) * sizeof(H5G_entry_t));
+ sn->nsyms = H5G_NODE_K(f);
+ sn->dirty = TRUE;
+
+ /* The middle key */
+ md_key->offset = sn->entry[sn->nsyms - 1].name_off;
+
+ /* Where to insert the new entry? */
+ if (idx <= H5G_NODE_K(f)) {
+ insert_into = sn;
+ insert_addr = *addr;
+ if (idx == H5G_NODE_K(f))
+ md_key->offset = offset;
+ } else {
+ idx -= H5G_NODE_K(f);
+ insert_into = snrt;
+ insert_addr = *new_node;
+ }
} else {
- /* Where to insert the new entry? */
- ret_value = H5B_INS_NOOP;
- sn->dirty = TRUE;
- insert_into = sn;
- insert_addr = *addr;
- if (idx == sn->nsyms) {
- rt_key->offset = offset;
- *rt_key_changed = TRUE;
- }
+ /* Where to insert the new entry? */
+ ret_value = H5B_INS_NOOP;
+ sn->dirty = TRUE;
+ insert_into = sn;
+ insert_addr = *addr;
+ if (idx == sn->nsyms) {
+ rt_key->offset = offset;
+ *rt_key_changed = TRUE;
+ }
}
/* Move entries */
HDmemmove(insert_into->entry + idx + 1,
- insert_into->entry + idx,
- (insert_into->nsyms - idx) * sizeof(H5G_entry_t));
+ insert_into->entry + idx,
+ (insert_into->nsyms - idx) * sizeof(H5G_entry_t));
insert_into->entry[idx] = bt_udata->ent;
insert_into->entry[idx].dirty = TRUE;
insert_into->nsyms += 1;
done:
if (sn && H5AC_unprotect(f, H5AC_SNODE, addr, sn) < 0) {
- HRETURN_ERROR(H5E_SYM, H5E_PROTECT, H5B_INS_ERROR,
- "unable to release symbol table node");
+ HRETURN_ERROR(H5E_SYM, H5E_PROTECT, H5B_INS_ERROR,
+ "unable to release symbol table node");
}
FUNC_LEAVE(ret_value);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_list
+ * Function: H5G_node_list
*
- * Purpose: This function gets called during a group list operation.
- * It should fill in data in the UDATA struct.
+ * Purpose: This function gets called during a group list operation.
+ * It should fill in data in the UDATA struct.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jun 24 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jun 24 1997
*
* Modifications:
*
@@ -855,11 +855,11 @@ H5G_node_insert(H5F_t *f, const haddr_t *addr,
static herr_t
H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata)
{
- H5G_bt_ud2_t *bt_udata = (H5G_bt_ud2_t *) _udata;
- H5G_node_t *sn = NULL;
- intn i;
- const char *s;
- herr_t ret_value = FAIL;
+ H5G_bt_ud2_t *bt_udata = (H5G_bt_ud2_t *) _udata;
+ H5G_node_t *sn = NULL;
+ intn i;
+ const char *s;
+ herr_t ret_value = FAIL;
FUNC_ENTER(H5G_node_list, FAIL);
@@ -871,8 +871,8 @@ H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata)
assert(bt_udata);
if (NULL == (sn = H5AC_protect(f, H5AC_SNODE, addr, NULL, NULL))) {
- HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, FAIL,
- "unable to protect symbol table node");
+ HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, FAIL,
+ "unable to protect symbol table node");
}
/*
* If we've already overflowed the user-supplied buffer, then just
@@ -880,26 +880,26 @@ H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata)
* anything else.
*/
if (bt_udata->nsyms >= bt_udata->maxentries) {
- bt_udata->nsyms += sn->nsyms;
- HGOTO_DONE(SUCCEED);
+ bt_udata->nsyms += sn->nsyms;
+ HGOTO_DONE(SUCCEED);
}
/*
* Save the symbol table entries.
*/
if (bt_udata->entry) {
- for (i = 0; i < sn->nsyms && bt_udata->nsyms + i < bt_udata->maxentries; i++) {
- bt_udata->entry[bt_udata->nsyms + i] = sn->entry[i];
- }
+ for (i = 0; i < sn->nsyms && bt_udata->nsyms + i < bt_udata->maxentries; i++) {
+ bt_udata->entry[bt_udata->nsyms + i] = sn->entry[i];
+ }
}
if (bt_udata->name) {
- for (i = 0; i < sn->nsyms && bt_udata->nsyms + i < bt_udata->maxentries; i++) {
- if (NULL == (s = H5H_peek(f, &(bt_udata->heap_addr),
- sn->entry[i].name_off))) {
- HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
- "unable to read symbol name");
- }
- bt_udata->name[bt_udata->nsyms + i] = H5MM_xstrdup(s);
- }
+ for (i = 0; i < sn->nsyms && bt_udata->nsyms + i < bt_udata->maxentries; i++) {
+ if (NULL == (s = H5H_peek(f, &(bt_udata->heap_addr),
+ sn->entry[i].name_off))) {
+ HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL,
+ "unable to read symbol name");
+ }
+ bt_udata->name[bt_udata->nsyms + i] = H5MM_xstrdup(s);
+ }
}
/*
* Update the number of symbols.
@@ -909,25 +909,25 @@ H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata)
done:
if (sn && H5AC_unprotect(f, H5AC_SNODE, addr, sn) < 0) {
- HRETURN_ERROR(H5E_CACHE, H5E_PROTECT, FAIL,
- "unable to release symbol table node");
+ HRETURN_ERROR(H5E_CACHE, H5E_PROTECT, FAIL,
+ "unable to release symbol table node");
}
FUNC_LEAVE(ret_value);
}
/*-------------------------------------------------------------------------
- * Function: H5G_node_debug
+ * Function: H5G_node_debug
*
- * Purpose: Prints debugging information about a symbol table node
- * or a B-tree node for a symbol table B-tree.
+ * Purpose: Prints debugging information about a symbol table node
+ * or a B-tree node for a symbol table B-tree.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Aug 4 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Aug 4 1997
*
* Modifications:
*
@@ -935,12 +935,12 @@ H5G_node_list(H5F_t *f, const haddr_t *addr, void *_udata)
*/
herr_t
H5G_node_debug(H5F_t *f, const haddr_t *addr, FILE * stream, intn indent,
- intn fwidth, const haddr_t *heap)
+ intn fwidth, const haddr_t *heap)
{
- int i;
- H5G_node_t *sn = NULL;
- herr_t status;
- const char *s;
+ int i;
+ H5G_node_t *sn = NULL;
+ herr_t status;
+ const char *s;
FUNC_ENTER(H5G_node_debug, FAIL);
@@ -958,33 +958,33 @@ H5G_node_debug(H5F_t *f, const haddr_t *addr, FILE * stream, intn indent,
* B-tree node.
*/
if (NULL == (sn = H5AC_protect(f, H5AC_SNODE, addr, NULL, NULL))) {
- H5ECLEAR; /*discard that error */
- status = H5B_debug(f, addr, stream, indent, fwidth, H5B_SNODE, NULL);
- if (status < 0) {
- HRETURN_ERROR(H5E_SYM, H5E_CANTLOAD, FAIL,
- "unable to debug B-tree node");
- }
- HRETURN(SUCCEED);
+ H5ECLEAR; /*discard that error */
+ status = H5B_debug(f, addr, stream, indent, fwidth, H5B_SNODE, NULL);
+ if (status < 0) {
+ HRETURN_ERROR(H5E_SYM, H5E_CANTLOAD, FAIL,
+ "unable to debug B-tree node");
+ }
+ HRETURN(SUCCEED);
}
fprintf(stream, "%*sSymbol Table Node...\n", indent, "");
fprintf(stream, "%*s%-*s %s\n", indent, "", fwidth,
- "Dirty:",
- sn->dirty ? "Yes" : "No");
+ "Dirty:",
+ sn->dirty ? "Yes" : "No");
fprintf(stream, "%*s%-*s %d of %d\n", indent, "", fwidth,
- "Number of Symbols:",
- sn->nsyms, 2 * H5G_NODE_K(f));
+ "Number of Symbols:",
+ sn->nsyms, 2 * H5G_NODE_K(f));
indent += 3;
fwidth = MAX(0, fwidth - 3);
for (i = 0; i < sn->nsyms; i++) {
- fprintf(stream, "%*sSymbol %d:\n", indent - 3, "", i);
- if (H5F_addr_defined(heap) &&
- (s = H5H_peek(f, heap, sn->entry[i].name_off))) {
- fprintf(stream, "%*s%-*s `%s'\n", indent, "", fwidth,
- "Name:",
- s);
- }
- H5G_ent_debug(f, sn->entry + i, stream, indent, fwidth);
+ fprintf(stream, "%*sSymbol %d:\n", indent - 3, "", i);
+ if (H5F_addr_defined(heap) &&
+ (s = H5H_peek(f, heap, sn->entry[i].name_off))) {
+ fprintf(stream, "%*s%-*s `%s'\n", indent, "", fwidth,
+ "Name:",
+ s);
+ }
+ H5G_ent_debug(f, sn->entry + i, stream, indent, fwidth);
}
H5AC_unprotect(f, H5AC_SNODE, addr, sn);