summaryrefslogtreecommitdiffstats
path: root/src/H5Dlayout.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2015-03-18 21:53:49 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2015-03-18 21:53:49 (GMT)
commit4cfe53284bb6c3f7f57ff70af6ceb7396683aaa4 (patch)
treea9660134778d77babb6adb93286015836044ddb5 /src/H5Dlayout.c
parent424826d0dd492cb734e166b7154e2db456f6a13a (diff)
downloadhdf5-4cfe53284bb6c3f7f57ff70af6ceb7396683aaa4.zip
hdf5-4cfe53284bb6c3f7f57ff70af6ceb7396683aaa4.tar.gz
hdf5-4cfe53284bb6c3f7f57ff70af6ceb7396683aaa4.tar.bz2
[svn-r26476] Add support for I/O in all cases with fixed size datasets and no point
selections. Add source dataspace extent patching (should allow closing the source file). Note fill values and various other features are not yet supported. Note there are still some code coverage assertions in the selection matching algorithm - if you hit these try taking them out. Note make check still fails in h5dump test (unrelated to this checkin). Tested: ummon
Diffstat (limited to 'src/H5Dlayout.c')
-rw-r--r--src/H5Dlayout.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/H5Dlayout.c b/src/H5Dlayout.c
index fea57fe..87e1bc8 100644
--- a/src/H5Dlayout.c
+++ b/src/H5Dlayout.c
@@ -454,12 +454,13 @@ H5D__layout_oh_read(H5D_t *dataset, hid_t dxpl_id, hid_t dapl_id, H5P_genplist_t
HDassert(dataset->shared->layout.storage.u.virt.list || (dataset->shared->layout.storage.u.virt.list_nused == 0));
- /* Patch the virtual selection dataspaces */
+ /* Patch the virtual selection dataspaces if necessary */
for(i = 0; i < dataset->shared->layout.storage.u.virt.list_nused; i++) {
- HDassert(dataset->shared->layout.storage.u.virt.list[i].virtual_space_status == H5O_VIRTUAL_STATUS_INVALID);
- 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")
- dataset->shared->layout.storage.u.virt.list[i].virtual_space_status = H5O_VIRTUAL_STATUS_CORRECT;
+ if(dataset->shared->layout.storage.u.virt.list[i].virtual_space_status != H5O_VIRTUAL_STATUS_CORRECT) {
+ 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")
+ dataset->shared->layout.storage.u.virt.list[i].virtual_space_status = H5O_VIRTUAL_STATUS_CORRECT;
+ } /* end if */
} /* end for */
} /* end block */
break;
@@ -473,7 +474,7 @@ H5D__layout_oh_read(H5D_t *dataset, hid_t dxpl_id, hid_t dapl_id, H5P_genplist_t
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__layout_oh_read() */
-#error
+
/*-------------------------------------------------------------------------
* Function: H5D__layout_oh_write