diff options
Diffstat (limited to 'src/H5Idbg.c')
-rw-r--r-- | src/H5Idbg.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/H5Idbg.c b/src/H5Idbg.c index f0314b5..71937e8 100644 --- a/src/H5Idbg.c +++ b/src/H5Idbg.c @@ -30,7 +30,6 @@ #include "H5Gprivate.h" /* Groups */ #include "H5Ipkg.h" /* IDs */ #include "H5RSprivate.h" /* Reference-counted strings */ -#include "H5SLprivate.h" /* Skip Lists */ #include "H5Tprivate.h" /* Datatypes */ #include "H5VLprivate.h" /* Virtual Object Layer */ @@ -76,16 +75,17 @@ static int H5I__id_dump_cb(void *_item, void *_key, void *_udata); static int H5I__id_dump_cb(void *_item, void H5_ATTR_UNUSED *_key, void *_udata) { - H5I_id_info_t *info = (H5I_id_info_t *)_item; /* Pointer to the ID node */ - H5I_type_t type = *(H5I_type_t *)_udata; /* User data */ - H5G_name_t * path = NULL; /* Path to file object */ - const void * object = NULL; /* Pointer to VOL connector object */ + H5I_id_info_t * info = (H5I_id_info_t *)_item; /* Pointer to the ID node */ + H5I_type_t type = *(H5I_type_t *)_udata; /* User data */ + const H5G_name_t *path = NULL; /* Path to file object */ + const void * object = NULL; /* Pointer to VOL connector object */ FUNC_ENTER_STATIC_NOERR HDfprintf(stderr, " id = %" PRIdHID "\n", info->id); HDfprintf(stderr, " count = %u\n", info->count); HDfprintf(stderr, " obj = 0x%8p\n", info->object); + HDfprintf(stderr, " marked = %d\n", info->marked); /* Get the group location, so we get get the name */ switch (type) { @@ -172,6 +172,9 @@ H5I_dump_ids_for_type(H5I_type_t type) if (type_info) { + H5I_id_info_t *item = NULL; + H5I_id_info_t *tmp = NULL; + /* Header */ HDfprintf(stderr, " init_count = %u\n", type_info->init_count); HDfprintf(stderr, " reserved = %u\n", type_info->cls->reserved); @@ -181,7 +184,17 @@ H5I_dump_ids_for_type(H5I_type_t type) /* List */ if (type_info->id_count > 0) { HDfprintf(stderr, " List:\n"); - H5SL_iterate(type_info->ids, H5I__id_dump_cb, &type); + /* Normally we care about the callback's return value + * (H5I_ITER_CONT, etc.), but this is an iteration over all + * the IDs so we don't care. + * + * XXX: Update this to emit an error message on errors? + */ + HDfprintf(stderr, " (HASH TABLE)\n"); + HASH_ITER(hh, type_info->hash_table, item, tmp) + { + H5I__id_dump_cb((void *)item, NULL, (void *)&type); + } } } else |