summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2019-06-20 11:55:29 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2019-06-20 11:55:29 (GMT)
commit1e31a86dab4c0ee7fd382f18eef9d9633f3b4395 (patch)
tree15f3e8af3871047c992d5e5ec06131cb8f984a0c
parentb106b883cc620dee06f560598acc159dd106b7cd (diff)
parent2e973f7e12301975f9d8dfdd5534682525554e77 (diff)
downloadhdf5-1e31a86dab4c0ee7fd382f18eef9d9633f3b4395.zip
hdf5-1e31a86dab4c0ee7fd382f18eef9d9633f3b4395.tar.gz
hdf5-1e31a86dab4c0ee7fd382f18eef9d9633f3b4395.tar.bz2
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '2e973f7e12301975f9d8dfdd5534682525554e77': Fix minor typo in H5S_select_iter_release Fix memory leak in objcopy test after H5Aread of vlen data
-rw-r--r--src/H5Sselect.c2
-rw-r--r--test/objcopy.c28
2 files changed, 28 insertions, 2 deletions
diff --git a/src/H5Sselect.c b/src/H5Sselect.c
index c40ff69..c383fed 100644
--- a/src/H5Sselect.c
+++ b/src/H5Sselect.c
@@ -1395,7 +1395,7 @@ done:
PURPOSE
Release a selection iterator's resources.
USAGE
- hssize_t H5S_select_iter_release(sel_iter)
+ herr_t H5S_select_iter_release(sel_iter)
H5S_sel_iter_t *sel_iter; IN: Selection iterator to query
RETURNS
The number of elements in selection on success, 0 on failure
diff --git a/test/objcopy.c b/test/objcopy.c
index e35eea3..e646c87 100644
--- a/test/objcopy.c
+++ b/test/objcopy.c
@@ -5871,12 +5871,14 @@ compare_attribute_compound_vlstr(hid_t loc, hid_t loc2)
{
hid_t aid = -1, aid2 = -1; /* Attribute IDs */
hid_t tid = -1, tid2 = -1; /* Datatype IDs */
+ hid_t sid = -1, sid2 = -1; /* Dataspace IDs */
+ hid_t dxpl_id = -1;
typedef struct { /* Compound structure for the attribute */
int i;
char *v;
} s1;
s1 rbuf; /* Buffer for data read */
- s1 rbuf2; /* Buffer for data read */
+ s1 rbuf2; /* Buffer for data read */
/* Open the attributes attached to the objects */
if((aid = H5Aopen_by_idx(loc, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT)) < 0)
@@ -5890,6 +5892,12 @@ compare_attribute_compound_vlstr(hid_t loc, hid_t loc2)
if((tid2 = H5Aget_type(aid2)) < 0)
FAIL_STACK_ERROR
+ /* Get the attributes' dataspaces */
+ if((sid = H5Aget_space(aid)) < 0)
+ FAIL_STACK_ERROR
+ if((sid2 = H5Aget_space(aid2)) < 0)
+ FAIL_STACK_ERROR
+
/* Read the attributes */
if(H5Aread(aid, tid, &rbuf) < 0)
FAIL_STACK_ERROR
@@ -5904,6 +5912,19 @@ compare_attribute_compound_vlstr(hid_t loc, hid_t loc2)
if(HDmemcmp(rbuf.v, rbuf2.v, HDstrlen(rbuf.v)))
FAIL_STACK_ERROR
+ /* Reclaim vlen buffer */
+ if((dxpl_id = H5Pcreate(H5P_DATASET_XFER)) < 0) TEST_ERROR
+ if(H5Pset_vlen_mem_manager(dxpl_id, NULL, NULL, NULL, NULL) < 0) TEST_ERROR
+ if(H5Dvlen_reclaim(tid, sid, dxpl_id, &rbuf) < 0) TEST_ERROR
+ if(H5Dvlen_reclaim(tid, sid, dxpl_id, &rbuf2) < 0) TEST_ERROR
+ if(H5Pclose(dxpl_id) < 0) TEST_ERROR
+
+ /* Close the dataspaces */
+ if(H5Sclose(sid) < 0)
+ FAIL_STACK_ERROR
+ if(H5Sclose(sid2) < 0)
+ FAIL_STACK_ERROR
+
/* Close the attributes */
if(H5Aclose(aid) < 0)
FAIL_STACK_ERROR
@@ -5915,8 +5936,13 @@ error:
H5E_BEGIN_TRY {
H5Aclose(aid);
H5Aclose(aid2);
+ H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, &rbuf);
+ H5Dvlen_reclaim(tid, sid, H5P_DEFAULT, &rbuf2);
+ H5Sclose(sid);
+ H5Sclose(sid2);
H5Tclose(tid);
H5Tclose(tid2);
+ H5Pclose(dxpl_id);
} H5E_END_TRY;
return FALSE;