summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2002-07-01 21:32:13 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2002-07-01 21:32:13 (GMT)
commiteb45c3c8a46cb1e21748c432172461592b794328 (patch)
tree35a7187a844a902b683359254581d0ecdc59228e /src
parent3b3d15822acd80172e47f560312843001d8a99e0 (diff)
downloadhdf5-eb45c3c8a46cb1e21748c432172461592b794328.zip
hdf5-eb45c3c8a46cb1e21748c432172461592b794328.tar.gz
hdf5-eb45c3c8a46cb1e21748c432172461592b794328.tar.bz2
[svn-r5740] Purpose:
Bug fix. Description: 1-D non-contiguous hyperslabs were erroneously being detected as contiguous and were causing incorrect behavior for parallel I/O benchmark (and parallel programs in general). Solution: Modified algorithm to handle 1-D case correctly. Platforms tested: IRIX64 6.5 (modi4)
Diffstat (limited to 'src')
-rw-r--r--src/H5Shyper.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/H5Shyper.c b/src/H5Shyper.c
index bf035b4..d24abfc 100644
--- a/src/H5Shyper.c
+++ b/src/H5Shyper.c
@@ -5590,8 +5590,12 @@ H5S_hyper_select_contiguous(const H5S_t *space)
small_contiguous=FALSE; /* assume false initially */
/* Check for a "large contigous" block */
- for(u=1; u<space->extent.u.simple.rank; u++) {
- if(space->select.sel_info.hslab.diminfo[u].count>1 || space->select.sel_info.hslab.diminfo[u].block!=space->extent.u.simple.size[u]) {
+ for(u=0; u<space->extent.u.simple.rank; u++) {
+ if(space->select.sel_info.hslab.diminfo[u].count>1) {
+ large_contiguous=FALSE;
+ break;
+ } /* end if */
+ if(u>0 && space->select.sel_info.hslab.diminfo[u].block!=space->extent.u.simple.size[u]) {
large_contiguous=FALSE;
break;
} /* end if */