summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorvchoi <vchoi@jelly.ad.hdfgroup.org>2020-07-14 15:56:33 (GMT)
committervchoi <vchoi@jelly.ad.hdfgroup.org>2020-07-14 15:56:33 (GMT)
commit4bc49d8b2bb6b549141a47f50062eb4ddfba4557 (patch)
tree325efe9238e8621983bdbde6c4ec2fdf4688e99e /src
parentb480d0a38b1e265c55c74262bf384d255a33e07b (diff)
downloadhdf5-4bc49d8b2bb6b549141a47f50062eb4ddfba4557.zip
hdf5-4bc49d8b2bb6b549141a47f50062eb4ddfba4557.tar.gz
hdf5-4bc49d8b2bb6b549141a47f50062eb4ddfba4557.tar.bz2
Fix for jira issue HDFFV-11080:
(1) Patch up the file pointer when reading attribute of variable length datatype (2) Test to verify the fix when doing multiple threads
Diffstat (limited to 'src')
-rw-r--r--src/H5Aint.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/H5Aint.c b/src/H5Aint.c
index 1a74abe..cd0ab80 100644
--- a/src/H5Aint.c
+++ b/src/H5Aint.c
@@ -616,6 +616,10 @@ H5A__read(const H5A_t *attr, const H5T_t *mem_type, void *buf)
HDassert(mem_type);
HDassert(buf);
+ /* Patch the top level file pointer in attr->shared->dt->shared->u.vlen.f if needed */
+ if(H5T_patch_vlen_file(attr->shared->dt, H5F_VOL_OBJ(attr->oloc.file)) < 0 )
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't patch VL datatype file pointer")
+
/* Create buffer for data to store on disk */
if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0)
HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "dataspace is invalid")