summaryrefslogtreecommitdiffstats
path: root/tools/h5repack/h5repack_verify.c
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2003-12-31 14:00:36 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2003-12-31 14:00:36 (GMT)
commit738e808d262a79d43a4697bb731c5d2961a006a2 (patch)
tree64dbf68fe83ebfad007bd655aa0b2536173053e8 /tools/h5repack/h5repack_verify.c
parentee2eecf1b43916925411798297a06bffd39b76f2 (diff)
downloadhdf5-738e808d262a79d43a4697bb731c5d2961a006a2.zip
hdf5-738e808d262a79d43a4697bb731c5d2961a006a2.tar.gz
hdf5-738e808d262a79d43a4697bb731c5d2961a006a2.tar.bz2
[svn-r7999] Purpose:
h5repack new features Description: added support/ tests for contiguous and compact layout processing Solution: Platforms tested: linux solaris AIX Misc. update:
Diffstat (limited to 'tools/h5repack/h5repack_verify.c')
-rw-r--r--tools/h5repack/h5repack_verify.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/tools/h5repack/h5repack_verify.c b/tools/h5repack/h5repack_verify.c
index 4486477..e2545bc 100644
--- a/tools/h5repack/h5repack_verify.c
+++ b/tools/h5repack/h5repack_verify.c
@@ -96,17 +96,29 @@ int has_layout(hid_t dcpl_id,
{
hsize_t chsize[64]; /* chunk size in elements */
H5D_layout_t layout; /* layout */
+ int nfilters; /* number of filters */
int rank; /* rank */
int i; /* index */
/* if no information about the input layout is requested return exit */
if (obj==NULL)
return 1;
-
- layout = H5Pget_layout(dcpl_id);
+
+ /* check if we have filters in the input object */
+ if ((nfilters = H5Pget_nfilters(dcpl_id))<0)
+ return -1;
+
+ /* a non chunked layout was requested on a filtered object; avoid the test */
+ if (nfilters && obj->layout!=H5D_CHUNKED)
+ return 1;
+
+ /* get layout */
+ if ((layout = H5Pget_layout(dcpl_id))<0)
+ return -1;
+
if (obj->layout != layout)
return 0;
-
+
if (layout==H5D_CHUNKED)
{
if ((rank = H5Pget_chunk(dcpl_id,NELMTS(chsize),chsize/*out*/))<0)
@@ -118,8 +130,6 @@ int has_layout(hid_t dcpl_id,
return 0;
}
-
-
return 1;
}