From e350a69a55f2101d7e31dc8b3565da50ef452643 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 14 Jul 1998 19:47:18 -0500 Subject: [svn-r493] Fixed a bug when iterating through hyperslabs with greater than 2 dimensions. --- src/H5D.c | 7 +++++-- src/H5Shyper.c | 16 ++++++++++++++++ src/H5Sprivate.h | 2 +- src/H5Spublic.h | 2 +- src/H5public.h | 2 +- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/H5D.c b/src/H5D.c index ba067ae..eea820c 100644 --- a/src/H5D.c +++ b/src/H5D.c @@ -1443,15 +1443,18 @@ printf("%s: check 5.0, nelmts=%d, smine_start=%d, smine_nelmts=%d\n",FUNC,(int)n } #ifdef QAK printf("%s: check 6.0\n",FUNC); +#endif /* QAK */ +#ifdef QAK +printf("%s: check 6.5\n",FUNC); { int i; - int *b; + uint8 *b; if(qak_debug) { b=tconv_buf; printf("\ntconv_buf:"); for (i=0; iiter->hyp.pos[dim]!=j) + fhyper_info->iter->hyp.pos[dim+1]=(-1); + /* Set the correct position we are working on */ fhyper_info->iter->hyp.pos[dim]=j; @@ -588,6 +592,10 @@ H5S_hyper_fwrite (intn dim, H5S_hyper_fhyper_info_t *fhyper_info) /* Step through each location in each region */ for(j=regions[i].start; j<=regions[i].end && fhyper_info->nelmts>0; j++) { + /* If we are moving to a new position in this dim, reset the next lower dim. location */ + if(fhyper_info->iter->hyp.pos[dim]!=j) + fhyper_info->iter->hyp.pos[dim+1]=(-1); + /* Set the correct position we are working on */ fhyper_info->iter->hyp.pos[dim]=j; @@ -817,6 +825,10 @@ printf("%s: check 3.0, num_regions=%d\n",FUNC,(int)num_regions); printf("%s: check 4.0, dim=%d, location=%d\n",FUNC,dim,j); #endif /* QAK */ + /* If we are moving to a new position in this dim, reset the next lower dim. location */ + if(fhyper_info->iter->hyp.pos[dim]!=j) + fhyper_info->iter->hyp.pos[dim+1]=(-1); + /* Set the correct position we are working on */ fhyper_info->iter->hyp.pos[dim]=j; @@ -1054,6 +1066,10 @@ printf("%s: check 3.0\n",FUNC); /* Step through each location in each region */ for(j=regions[i].start; j<=regions[i].end && fhyper_info->nelmts>0; j++) { + /* If we are moving to a new position in this dim, reset the next lower dim. location */ + if(fhyper_info->iter->hyp.pos[dim]!=j) + fhyper_info->iter->hyp.pos[dim+1]=(-1); + /* Set the correct position we are working on */ fhyper_info->iter->hyp.pos[dim]=j; diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h index f4e9843..dcae464 100644 --- a/src/H5Sprivate.h +++ b/src/H5Sprivate.h @@ -207,7 +207,7 @@ herr_t H5S_close (H5S_t *ds); hsize_t H5S_extent_npoints (const H5S_t *ds); hsize_t H5S_get_npoints_max(const H5S_t *ds); intn H5S_extent_ndims (const H5S_t *ds); -intn H5S_get_dims (const H5S_t *ds, hsize_t dims[]/*out*/, +intn H5S_extent_dims (const H5S_t *ds, hsize_t dims[]/*out*/, hsize_t max_dims[]/*out*/); herr_t H5S_modify (H5G_entry_t *ent, const H5S_t *space); H5S_t *H5S_read (H5G_entry_t *ent); diff --git a/src/H5Spublic.h b/src/H5Spublic.h index 1c48dbc..e0cc272 100644 --- a/src/H5Spublic.h +++ b/src/H5Spublic.h @@ -50,7 +50,7 @@ hid_t H5Scopy (hid_t space_id); herr_t H5Sclose (hid_t space_id); hsize_t H5Sextent_npoints (hid_t space_id); int H5Sextent_ndims (hid_t space_id); -int H5Sget_dims (hid_t space_id, hsize_t dims[], hsize_t maxdims[]); +int H5Sextent_dims (hid_t space_id, hsize_t dims[], hsize_t maxdims[]); hbool_t H5Sis_simple (hid_t space_id); herr_t H5Sset_space (hid_t space_id, int rank, const hsize_t *dims); hsize_t H5Sselect_npoints (hid_t spaceid); diff --git a/src/H5public.h b/src/H5public.h index e336c90..3cd58df 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -27,7 +27,7 @@ /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface changes */ #define H5_VERS_MINOR 0 /* For minor interface changes */ -#define H5_VERS_RELEASE 14 /* For interface tweaks & bug-fixes */ +#define H5_VERS_RELEASE 17 /* For interface tweaks & bug-fixes */ #define H5_VERS_PATCH 0 /* For small groups of bug fixes */ #define H5check() H5vers_check(H5_VERS_MAJOR,H5_VERS_MINOR,\ -- cgit v0.12