summaryrefslogtreecommitdiffstats
path: root/src/H5Dlayout.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2015-02-24 19:54:48 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2015-02-24 19:54:48 (GMT)
commit28111339143e6c3f9aa8d4f96c771472a1a79c55 (patch)
tree76000c9a80ce336f86cdf85d4d0cf01fc34464ac /src/H5Dlayout.c
parent80e77e7d778ea5d5bfcfc92f9492cdfdc1dd0197 (diff)
downloadhdf5-28111339143e6c3f9aa8d4f96c771472a1a79c55.zip
hdf5-28111339143e6c3f9aa8d4f96c771472a1a79c55.tar.gz
hdf5-28111339143e6c3f9aa8d4f96c771472a1a79c55.tar.bz2
[svn-r26293] Implement patching of virtual dataspace extent in mapping dataspaces when
opening virtual dataset. Add tests for this. Tested: ummon
Diffstat (limited to 'src/H5Dlayout.c')
-rw-r--r--src/H5Dlayout.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/H5Dlayout.c b/src/H5Dlayout.c
index 5929163..c0e1b20 100644
--- a/src/H5Dlayout.c
+++ b/src/H5Dlayout.c
@@ -449,6 +449,16 @@ H5D__layout_oh_read(H5D_t *dataset, hid_t dxpl_id, hid_t dapl_id, H5P_genplist_t
break;
case H5D_VIRTUAL:
+ {
+ size_t i;
+
+ HDassert(!dataset->shared->layout.storage.u.virt.list == (dataset->shared->layout.storage.u.virt.list_nused == 0));
+
+ /* Patch the virtual selection dataspaces */
+ for(i = 0; i < dataset->shared->layout.storage.u.virt.list_nused; i++)
+ if(H5S_extent_copy(dataset->shared->layout.storage.u.virt.list[i].virtual_select, dataset->shared->space) < 0)
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTCOPY, FAIL, "can't copy virtual dataspace extent")
+ } /* end block */
break;
case H5D_LAYOUT_ERROR: