diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2016-03-07 16:09:42 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2016-03-07 16:09:42 (GMT) |
commit | 22eaae599991804716cfe226859c3679e4494213 (patch) | |
tree | 6b77b2793dd9ffde4464541fc0e6346269d5c2e4 /tools/lib/h5tools.c | |
parent | 8f5530e3be3e3c53951a0fa64a13d89d674b22d1 (diff) | |
download | hdf5-22eaae599991804716cfe226859c3679e4494213.zip hdf5-22eaae599991804716cfe226859c3679e4494213.tar.gz hdf5-22eaae599991804716cfe226859c3679e4494213.tar.bz2 |
[svn-r29309] HDFFV-9698, HDFFV-9241, HDFFV-9570: Merge fixes from trunk for subsetting index, default fill value display, and optional arg crash. Also some minor compiler warnings fixes.
Diffstat (limited to 'tools/lib/h5tools.c')
-rw-r--r-- | tools/lib/h5tools.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index 1284924..a21dea7 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -1498,14 +1498,24 @@ render_bin_output(FILE *stream, hid_t container, hid_t tid, void *_mem, hsize_t } } break; - default: + + case H5T_TIME: + case H5T_BITFIELD: + case H5T_OPAQUE: for (block_index = 0; block_index < block_nelmts; block_index++) { mem = ((unsigned char*)_mem) + block_index * size; if (size != HDfwrite(mem, sizeof(char), size, stream)) H5E_THROW(FAIL, H5E_tools_min_id_g, "fwrite failed"); - } + } /* end for */ break; - } + + case H5T_NO_CLASS: + case H5T_NCLASSES: + default: + /* Badness */ + H5E_THROW(FAIL, H5E_tools_min_id_g, "bad type class"); + break; + } /* end switch */ CATCH return ret_value; @@ -1631,8 +1641,8 @@ render_bin_output_region_blocks(hid_t region_space, hid_t region_id, hsize_t alloc_size; hsize_t *ptdata; int ndims; - hid_t dtype; - hid_t type_id; + hid_t dtype = -1; + hid_t type_id = -1; if((snblocks = H5Sget_select_hyper_nblocks(region_space)) <= 0) H5E_THROW(FALSE, H5E_tools_min_id_g, "H5Sget_select_hyper_nblocks failed"); @@ -1662,10 +1672,10 @@ render_bin_output_region_blocks(hid_t region_space, hid_t region_id, done: HDfree(ptdata); - if(H5Tclose(type_id) < 0) + if(type_id > 0 && H5Tclose(type_id) < 0) HERROR(H5E_tools_g, H5E_tools_min_id_g, "H5Tclose failed"); - if(H5Tclose(dtype) < 0) + if(dtype > 0 && H5Tclose(dtype) < 0) HERROR(H5E_tools_g, H5E_tools_min_id_g, "H5Tclose failed"); H5_LEAVE(TRUE) @@ -1755,8 +1765,8 @@ render_bin_output_region_points(hid_t region_space, hid_t region_id, HERR_INIT(hbool_t, TRUE) hssize_t npoints; int ndims; - hid_t dtype; - hid_t type_id; + hid_t dtype = -1; + hid_t type_id = -1; if((npoints = H5Sget_select_elem_npoints(region_space)) <= 0) H5E_THROW(FALSE, H5E_tools_min_id_g, "H5Sget_select_elem_npoints failed"); @@ -1775,10 +1785,10 @@ render_bin_output_region_points(hid_t region_space, hid_t region_id, stream, container, ndims, type_id, npoints); done: - if(H5Tclose(type_id) < 0) + if(type_id > 0 && H5Tclose(type_id) < 0) HERROR(H5E_tools_g, H5E_tools_min_id_g, "H5Tclose failed"); - if(H5Tclose(dtype) < 0) + if(dtype > 0 && H5Tclose(dtype) < 0) HERROR(H5E_tools_g, H5E_tools_min_id_g, "H5Tclose failed"); H5_LEAVE(ret_value) |