summaryrefslogtreecommitdiffstats
path: root/src/H5EA.c
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2019-01-02 20:28:40 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2019-01-02 20:28:40 (GMT)
commit2713fb12b12c7d9c9a418494ac8c8c2b4ce93b88 (patch)
tree0521ea7663998496259b38c68cabd5bd0af9f34e /src/H5EA.c
parent600d44292bfbce3f6d6226260a654555278ef24b (diff)
parent74a3710a996fca5ed7fcb4dd8919a7a8521de1de (diff)
downloadhdf5-2713fb12b12c7d9c9a418494ac8c8c2b4ce93b88.zip
hdf5-2713fb12b12c7d9c9a418494ac8c8c2b4ce93b88.tar.gz
hdf5-2713fb12b12c7d9c9a418494ac8c8c2b4ce93b88.tar.bz2
Merge pull request #1380 in HDFFV/hdf5 from ~BMRIBLER/hdf5_1_10_bmr:hdf5_1_10 to hdf5_1_10
This is merged now so it can be tested. * commit '74a3710a996fca5ed7fcb4dd8919a7a8521de1de': Revised per review. Description: Changed H5EA_iterate and H5FA_iterate as suggested. Platforms tested: Linux/64 (jelly) Linux/64 (platypus) Darwin (osx1010test) Addressed HDFFV-10661 Description: - Fixed a bug triggered by tests in chunk_info.c. The returned value from a callback function was not checked in H5EA_iterate(), H5FA_iterate(), and H5D__none_idx_iterate(). This oversight caused a callback function to continue iterating even though it's supposed to stop. Vailin confirmed. - Addressed review comments and made various improvements on the tests. Platforms tested: Linux/64 (jelly) Linux/64 (platypus) Darwin (osx1010test)
Diffstat (limited to 'src/H5EA.c')
-rw-r--r--src/H5EA.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/H5EA.c b/src/H5EA.c
index 9ceb144..0b340a7 100644
--- a/src/H5EA.c
+++ b/src/H5EA.c
@@ -986,23 +986,27 @@ END_FUNC(PRIV) /* end H5EA_delete() */
* Purpose: Iterate over the elements of an extensible array
* (copied and modified from FA_iterate() in H5FA.c)
*
- * Return: SUCCEED/FAIL
+ * Return: H5_ITER_CONT/H5_ITER_ERROR
*
* Programmer: Vailin Choi; Feb 2015
*
+ * Modification:
+ * Prototype changed (HDFFV-10661)
+ * - herr_t to int
+ * - SUCCEED/FAIL to H5_ITER_CONT/H5_ITER_ERROR
+ * December 24, 2018 -BMR
*-------------------------------------------------------------------------
*/
BEGIN_FUNC(PRIV, ERR,
-herr_t, SUCCEED, FAIL,
+int, H5_ITER_CONT, H5_ITER_ERROR,
H5EA_iterate(H5EA_t *ea, H5EA_operator_t op, void *udata))
/* Local variables */
uint8_t *elmt = NULL;
hsize_t u;
+ int cb_ret = H5_ITER_CONT; /* Return value from callback */
- /*
- * Check arguments.
- */
+ /* Check arguments */
HDassert(ea);
HDassert(op);
HDassert(udata);
@@ -1012,9 +1016,7 @@ H5EA_iterate(H5EA_t *ea, H5EA_operator_t op, void *udata))
H5E_THROW(H5E_CANTALLOC, "memory allocation failed for extensible array element")
/* Iterate over all elements in array */
- for(u = 0; u < ea->hdr->stats.stored.max_idx_set; u++) {
- int cb_ret; /* Return value from callback */
-
+ for(u = 0; u < ea->hdr->stats.stored.max_idx_set && cb_ret == H5_ITER_CONT; u++) {
/* Get array element */
if(H5EA_get(ea, u, elmt) < 0)
H5E_THROW(H5E_CANTGET, "unable to delete fixed array")