summaryrefslogtreecommitdiffstats
path: root/tools/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib')
-rw-r--r--tools/lib/h5diff_dset.c12
-rw-r--r--tools/lib/h5diff_util.c7
-rw-r--r--tools/lib/h5tools.c41
-rw-r--r--tools/lib/h5tools_ref.c43
-rw-r--r--tools/lib/h5tools_type.c2
-rw-r--r--tools/lib/h5tools_utils.c18
-rw-r--r--tools/lib/h5trav.c32
7 files changed, 70 insertions, 85 deletions
diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c
index 1ac3d79..cf8b537 100644
--- a/tools/lib/h5diff_dset.c
+++ b/tools/lib/h5diff_dset.c
@@ -352,7 +352,6 @@ hsize_t diff_datasetid( hid_t did1,
nelmts2 *= dims2[i];
h5diffdebug3("nelmts: %ld - %ld\n", nelmts1, nelmts2);
- HDassert(nelmts1 == nelmts2);
if(tclass != H5T_ARRAY) {
/*-----------------------------------------------------------------
@@ -453,7 +452,6 @@ hsize_t diff_datasetid( hid_t did1,
size = 1;
sm_size[i - 1] = MIN(dadims[i - 1], size);
sm_nbytes *= sm_size[i - 1];
- HDassert(sm_nbytes > 0);
} /* end for */
/* malloc return code should be verified.
@@ -463,10 +461,10 @@ hsize_t diff_datasetid( hid_t did1,
* that fails to address freeing other objects created here.
* E.g., sm_space.
*/
- sm_buf1 = HDmalloc((size_t)sm_nbytes);
- HDassert(sm_buf1);
- sm_buf2 = HDmalloc((size_t)sm_nbytes);
- HDassert(sm_buf2);
+ if((sm_buf1 = HDmalloc((size_t)sm_nbytes)) == NULL)
+ goto error;
+ if((sm_buf2 = HDmalloc((size_t)sm_nbytes)) == NULL)
+ goto error;
sm_nelmts = sm_nbytes / p_type_nbytes;
sm_space = H5Screate_simple(1, &sm_nelmts, NULL);
@@ -676,7 +674,6 @@ int diff_can_type( hid_t f_tid1, /* file data type */
* check for non supported classes
*-------------------------------------------------------------------------
*/
- HDassert(tclass1 == tclass2);
switch (tclass1) {
case H5T_TIME:
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
@@ -748,7 +745,6 @@ int diff_can_type( hid_t f_tid1, /* file data type */
* check for different dimensions
*-------------------------------------------------------------------------
*/
- HDassert(rank1 == rank2);
for(i = 0; i<rank1; i++) {
if(maxdim1 && maxdim2) {
if(maxdim1[i] != maxdim2[i])
diff --git a/tools/lib/h5diff_util.c b/tools/lib/h5diff_util.c
index 0c02779..7a09ada 100644
--- a/tools/lib/h5diff_util.c
+++ b/tools/lib/h5diff_util.c
@@ -283,7 +283,6 @@ get_sign(H5T_sign_t sign)
return "H5T_NSGN";
default:
- HDassert(0);
return "unknown sign value";
} /* end switch */
}
@@ -340,7 +339,6 @@ get_class(H5T_class_t tclass)
case H5T_NO_CLASS:
case H5T_NCLASSES:
default:
- HDassert(0);
return("Invalid class");
} /* end switch */
} /* end get_class() */
@@ -395,7 +393,10 @@ herr_t match_up_memsize (hid_t f_tid1_id, hid_t f_tid2_id,
*m_size2 = H5Tget_size(*m_tid2);
} /* end else */
} /* end if */
- HDassert((*m_size1) == (*m_size2));
+ if((*m_size1) != (*m_size2)) {
+ ret = FAIL;
+ goto out;
+ }
out:
return ret;
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index 159349a..62495f9 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -12,16 +12,10 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Programmer: Robb Matzke <matzke@llnl.gov>
- * Thursday, July 23, 1998
- *
* Purpose: A library for displaying the values of a dataset in a human
* readable format.
*/
-#include <stdio.h>
-#include <stdlib.h>
-
#include "h5tools.h"
#include "h5tools_dump.h"
#include "h5tools_ref.h"
@@ -40,7 +34,7 @@ FILE *rawinstream = NULL; /* should initialize to stdin but gcc moa
FILE *rawoutstream = NULL; /* should initialize to stdout but gcc moans about it */
FILE *rawerrorstream = NULL; /* should initialize to stderr but gcc moans about it */
int bin_output; /* binary output */
-int bin_form; /* binary form */
+int bin_form = 0; /* binary form, default NATIVE */
int region_output; /* region output */
int oid_output; /* oid output */
int data_output; /* data output */
@@ -1289,13 +1283,13 @@ init_acc_pos(h5tools_context_t *ctx, hsize_t *dims)
int i;
unsigned j;
- HDassert(ctx->ndims);
-
- ctx->acc[ctx->ndims - 1] = 1;
- for (i = ((int)ctx->ndims - 2); i >= 0; i--)
- ctx->acc[i] = ctx->acc[i + 1] * dims[i + 1];
- for (j = 0; j < ctx->ndims; j++)
- ctx->pos[j] = 0;
+ if(ctx->ndims > 0) {
+ ctx->acc[ctx->ndims - 1] = 1;
+ for (i = ((int)ctx->ndims - 2); i >= 0; i--)
+ ctx->acc[i] = ctx->acc[i + 1] * dims[i + 1];
+ for (j = 0; j < ctx->ndims; j++)
+ ctx->pos[j] = 0;
+ }
}
/*-------------------------------------------------------------------------
@@ -1416,13 +1410,17 @@ render_bin_output(FILE *stream, hid_t container, hid_t tid, void *_mem, hsize_t
memb = H5Tget_super(tid);
ndims = H5Tget_array_ndims(tid);
H5Tget_array_dims2(tid, dims);
- HDassert(ndims >= 1 && ndims <= H5S_MAX_RANK);
-
- /* calculate the number of array elements */
- for (k = 0, nelmts = 1; k < ndims; k++) {
- temp_nelmts = nelmts;
- temp_nelmts *= dims[k];
- nelmts = (size_t) temp_nelmts;
+ if(ndims >= 1 && ndims <= H5S_MAX_RANK) {
+ /* calculate the number of array elements */
+ for (k = 0, nelmts = 1; k < ndims; k++) {
+ temp_nelmts = nelmts;
+ temp_nelmts *= dims[k];
+ nelmts = (size_t) temp_nelmts;
+ }
+ }
+ else {
+ H5Tclose(memb);
+ H5E_THROW(FAIL, H5E_tools_min_id_g, "calculate the number of array elements failed");
}
for (block_index = 0; block_index < block_nelmts; block_index++) {
@@ -1647,7 +1645,6 @@ render_bin_output_region_blocks(hid_t region_space, hid_t region_id,
ndims = (unsigned)sndims;
alloc_size = nblocks * ndims * 2 * sizeof(ptdata[0]);
- HDassert(alloc_size == (hsize_t) ((size_t) alloc_size)); /*check for overflow*/
if((ptdata = (hsize_t*) HDmalloc((size_t) alloc_size)) == NULL)
HGOTO_ERROR(FALSE, H5E_tools_min_id_g, "Could not allocate buffer for ptdata");
diff --git a/tools/lib/h5tools_ref.c b/tools/lib/h5tools_ref.c
index 16a949d..6153f0c 100644
--- a/tools/lib/h5tools_ref.c
+++ b/tools/lib/h5tools_ref.c
@@ -107,19 +107,21 @@ static int
init_ref_path_table(void)
{
/* Sanity check */
- HDassert(thefile > 0);
-
- /* Create skip list to store reference path information */
- if((ref_path_table = H5SL_create(H5SL_TYPE_HADDR, NULL))==NULL)
+ if(thefile > 0) {
+ /* Create skip list to store reference path information */
+ if((ref_path_table = H5SL_create(H5SL_TYPE_HADDR, NULL))==NULL)
+ return (-1);
+
+ /* Iterate over objects in this file */
+ if(h5trav_visit(thefile, "/", TRUE, TRUE, init_ref_path_cb, NULL, NULL) < 0) {
+ error_msg("unable to construct reference path table\n");
+ h5tools_setstatus(EXIT_FAILURE);
+ } /* end if */
+
+ return(0);
+ }
+ else
return (-1);
-
- /* Iterate over objects in this file */
- if(h5trav_visit(thefile, "/", TRUE, TRUE, init_ref_path_cb, NULL, NULL) < 0) {
- error_msg("unable to construct reference path table\n");
- h5tools_setstatus(EXIT_FAILURE);
- } /* end if */
-
- return(0);
}
/*-------------------------------------------------------------------------
@@ -212,16 +214,17 @@ ref_path_table_put(const char *path, haddr_t objno)
{
ref_path_node_t *new_node;
- HDassert(ref_path_table);
- HDassert(path);
-
- if((new_node = (ref_path_node_t *)HDmalloc(sizeof(ref_path_node_t))) == NULL)
- return(-1);
+ if(ref_path_table && path) {
+ if((new_node = (ref_path_node_t *)HDmalloc(sizeof(ref_path_node_t))) == NULL)
+ return(-1);
- new_node->objno = objno;
- new_node->path = HDstrdup(path);
+ new_node->objno = objno;
+ new_node->path = HDstrdup(path);
- return(H5SL_insert(ref_path_table, new_node, &(new_node->objno)));
+ return(H5SL_insert(ref_path_table, new_node, &(new_node->objno)));
+ }
+ else
+ return (-1);
}
/*
diff --git a/tools/lib/h5tools_type.c b/tools/lib/h5tools_type.c
index ae7160b..ee58ccb 100644
--- a/tools/lib/h5tools_type.c
+++ b/tools/lib/h5tools_type.c
@@ -92,7 +92,6 @@ h5tools_get_little_endian_type(hid_t tid)
case H5T_NO_CLASS:
case H5T_NCLASSES:
default:
- HDassert(0);
break;
} /* end switch */
@@ -179,7 +178,6 @@ h5tools_get_big_endian_type(hid_t tid)
case H5T_NO_CLASS:
case H5T_NCLASSES:
default:
- HDassert(0);
break;
} /* end switch */
diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c
index 4084be0..60d7732 100644
--- a/tools/lib/h5tools_utils.c
+++ b/tools/lib/h5tools_utils.c
@@ -12,20 +12,10 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Programmer: Bill Wendling <wendling@ncsa.uiuc.edu>
- * Tuesday, 6. March 2001
- */
-
-/*
* Portions of this work are derived from _Obfuscated C and Other Mysteries_,
* by Don Libes, copyright (c) 1993 by John Wiley & Sons, Inc.
*/
-#include <ctype.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-
#include "h5tools.h"
#include "h5tools_utils.h"
#include "H5private.h"
@@ -618,7 +608,6 @@ find_objs_cb(const char *name, const H5O_info_t *oinfo, const char *already_seen
case H5O_TYPE_UNKNOWN:
case H5O_TYPE_NTYPES:
default:
- HDassert(0);
break;
} /* end switch */
@@ -787,8 +776,11 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
} /* end if */
/* trg_path must be freed out of this function when finished using */
- link_info->trg_path = (char*)HDcalloc(link_info->linfo.u.val_size, sizeof(char));
- HDassert(link_info->trg_path);
+ if((link_info->trg_path = (char*)HDcalloc(link_info->linfo.u.val_size, sizeof(char))) == NULL) {
+ if(link_info->opt.msg_mode == 1)
+ parallel_print("Warning: unable to allocate buffer for <%s>\n",linkpath);
+ goto out;
+ } /* end if */
/* get link value */
if(H5Lget_val(file_id, linkpath, (void *)link_info->trg_path, link_info->linfo.u.val_size, H5P_DEFAULT) < 0) {
diff --git a/tools/lib/h5trav.c b/tools/lib/h5trav.c
index df5ba5c..079a4ea 100644
--- a/tools/lib/h5trav.c
+++ b/tools/lib/h5trav.c
@@ -557,7 +557,7 @@ trav_info_free(trav_info_t *info)
if(info) {
/* Free visited symbolic links path and file (if alloc) */
- for(u=0; u < info->symlink_visited.nused; u++)
+ for(u=0; u < info->symlink_visited.nused; u++)
{
if (info->symlink_visited.objs[u].file)
HDfree(info->symlink_visited.objs[u].file);
@@ -789,8 +789,6 @@ trav_table_addlink(trav_table_t *table, haddr_t objno, const char *path)
return;
} /* end for */
} /* end for */
-
- HDassert(0 && "object not in table?!?");
}
@@ -1017,7 +1015,7 @@ trav_print_visit_obj(const char *path, const H5O_info_t *oinfo,
/* Finish printing line about object */
printf("\n");
if(trav_verbosity > 0)
- H5Aiterate_by_name(print_udata->fid, path, trav_index_by, trav_index_order,
+ H5Aiterate_by_name(print_udata->fid, path, trav_index_by, trav_index_order,
NULL, trav_attr, &op_data, H5P_DEFAULT);
}
else
@@ -1051,12 +1049,12 @@ trav_print_visit_lnk(const char *path, const H5L_info_t *linfo, void *udata)
case H5L_TYPE_SOFT:
if(linfo->u.val_size > 0) {
char *targbuf = (char*)HDmalloc(linfo->u.val_size + 1);
- HDassert(targbuf);
-
- if(H5Lget_val(print_udata->fid, path, targbuf, linfo->u.val_size + 1, H5P_DEFAULT) < 0)
- targbuf[0] = 0;
- printf(" %-10s %s -> %s\n", "link", path, targbuf);
- HDfree(targbuf);
+ if(targbuf) {
+ if(H5Lget_val(print_udata->fid, path, targbuf, linfo->u.val_size + 1, H5P_DEFAULT) < 0)
+ targbuf[0] = 0;
+ printf(" %-10s %s -> %s\n", "link", path, targbuf);
+ HDfree(targbuf);
+ }
} /* end if */
else
printf(" %-10s %s ->\n", "link", path);
@@ -1069,13 +1067,13 @@ trav_print_visit_lnk(const char *path, const H5L_info_t *linfo, void *udata)
const char *objname = NULL;
targbuf = (char*)HDmalloc(linfo->u.val_size + 1);
- HDassert(targbuf);
-
- if(H5Lget_val(print_udata->fid, path, targbuf, linfo->u.val_size + 1, H5P_DEFAULT) < 0)
- targbuf[0] = 0;
- if(H5Lunpack_elink_val(targbuf, linfo->u.val_size, NULL, &filename, &objname) >= 0)
- printf(" %-10s %s -> %s %s\n", "ext link", path, filename, objname);
- HDfree(targbuf);
+ if(targbuf) {
+ if(H5Lget_val(print_udata->fid, path, targbuf, linfo->u.val_size + 1, H5P_DEFAULT) < 0)
+ targbuf[0] = 0;
+ if(H5Lunpack_elink_val(targbuf, linfo->u.val_size, NULL, &filename, &objname) >= 0)
+ printf(" %-10s %s -> %s %s\n", "ext link", path, filename, objname);
+ HDfree(targbuf);
+ }
} /* end if */
else
printf(" %-10s %s ->\n", "ext link", path);