diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2005-06-18 05:10:22 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2005-06-18 05:10:22 (GMT) |
commit | d6410304369bea0644da9ab594f22af6201fa16e (patch) | |
tree | dbbc72537715fa4c4fb53e153970735dc3003a66 /src/H5Sprivate.h | |
parent | 04e424638ad15f4663f77468f70ec58b7ac8df22 (diff) | |
download | hdf5-d6410304369bea0644da9ab594f22af6201fa16e.zip hdf5-d6410304369bea0644da9ab594f22af6201fa16e.tar.gz hdf5-d6410304369bea0644da9ab594f22af6201fa16e.tar.bz2 |
[svn-r10951] Purpose:
Bug fix
Description:
Hyperslab selections that had a selection offset and were applied to a
chunked dataset could get into an infinite loop or core dump if the same
selection was used multiple times, with different selection offsets.
Solution:
"Normalize" the selection with the selection offset, generate the
selections for the chunks overlapped and then "denormalize" the selection.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Diffstat (limited to 'src/H5Sprivate.h')
-rw-r--r-- | src/H5Sprivate.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h index 06c9f02..ac6a297 100644 --- a/src/H5Sprivate.h +++ b/src/H5Sprivate.h @@ -258,7 +258,8 @@ H5_DLL htri_t H5S_hyper_intersect_block (H5S_t *space, hsize_t *start, hsize_t * H5_DLL herr_t H5S_hyper_adjust_u(H5S_t *space, const hsize_t *offset); H5_DLL herr_t H5S_hyper_adjust_s(H5S_t *space, const hssize_t *offset); H5_DLL herr_t H5S_hyper_move(H5S_t *space, const hssize_t *offset); -H5_DLL herr_t H5S_hyper_normalize_offset(H5S_t *space); +H5_DLL herr_t H5S_hyper_normalize_offset(H5S_t *space, hssize_t *old_offset); +H5_DLL herr_t H5S_hyper_denormalize_offset(H5S_t *space, const hssize_t *old_offset); /* Operations on selection iterators */ H5_DLL herr_t H5S_select_iter_init(H5S_sel_iter_t *iter, const H5S_t *space, size_t elmt_size); |