diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/H5Dseq.c | 20 | ||||
-rw-r--r-- | src/H5Fseq.c | 20 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/H5Dseq.c b/src/H5Dseq.c index 45a6815..59e011b 100644 --- a/src/H5Dseq.c +++ b/src/H5Dseq.c @@ -348,6 +348,16 @@ H5F_seq_readv(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, /* Correct the coords array */ coords[i]=0; coords[i-1]++; + + /* Carry the coord array correction up the array, if the dimension is finished */ + while(i>0 && coords[i-1]==(hssize_t)dset_dims[i-1]) { + i--; + coords[i]=0; + if(i>0) { + coords[i-1]++; + assert(coords[i-1]<=(hssize_t)dset_dims[i-1]); + } /* end if */ + } /* end while */ } /* end if */ } /* end for */ @@ -721,6 +731,16 @@ H5F_seq_writev(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, /* Correct the coords array */ coords[i]=0; coords[i-1]++; + + /* Carry the coord array correction up the array, if the dimension is finished */ + while(i>0 && coords[i-1]==(hssize_t)dset_dims[i-1]) { + i--; + coords[i]=0; + if(i>0) { + coords[i-1]++; + assert(coords[i-1]<=(hssize_t)dset_dims[i-1]); + } /* end if */ + } /* end while */ } /* end if */ } /* end for */ diff --git a/src/H5Fseq.c b/src/H5Fseq.c index 45a6815..59e011b 100644 --- a/src/H5Fseq.c +++ b/src/H5Fseq.c @@ -348,6 +348,16 @@ H5F_seq_readv(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, /* Correct the coords array */ coords[i]=0; coords[i-1]++; + + /* Carry the coord array correction up the array, if the dimension is finished */ + while(i>0 && coords[i-1]==(hssize_t)dset_dims[i-1]) { + i--; + coords[i]=0; + if(i>0) { + coords[i-1]++; + assert(coords[i-1]<=(hssize_t)dset_dims[i-1]); + } /* end if */ + } /* end while */ } /* end if */ } /* end for */ @@ -721,6 +731,16 @@ H5F_seq_writev(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, /* Correct the coords array */ coords[i]=0; coords[i-1]++; + + /* Carry the coord array correction up the array, if the dimension is finished */ + while(i>0 && coords[i-1]==(hssize_t)dset_dims[i-1]) { + i--; + coords[i]=0; + if(i>0) { + coords[i-1]++; + assert(coords[i-1]<=(hssize_t)dset_dims[i-1]); + } /* end if */ + } /* end while */ } /* end if */ } /* end for */ |