diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2015-02-24 19:54:48 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2015-02-24 19:54:48 (GMT) |
commit | 28111339143e6c3f9aa8d4f96c771472a1a79c55 (patch) | |
tree | 76000c9a80ce336f86cdf85d4d0cf01fc34464ac /src/H5Dlayout.c | |
parent | 80e77e7d778ea5d5bfcfc92f9492cdfdc1dd0197 (diff) | |
download | hdf5-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.c | 10 |
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: |