diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 1998-07-15 00:47:18 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 1998-07-15 00:47:18 (GMT) |
commit | e350a69a55f2101d7e31dc8b3565da50ef452643 (patch) | |
tree | 0b4f2b4b10be3ae4fc73999df45bd980e2cc5635 /src | |
parent | e0c9ca3cce62a7cfe072c52cd5d98c334d46b9ff (diff) | |
download | hdf5-e350a69a55f2101d7e31dc8b3565da50ef452643.zip hdf5-e350a69a55f2101d7e31dc8b3565da50ef452643.tar.gz hdf5-e350a69a55f2101d7e31dc8b3565da50ef452643.tar.bz2 |
[svn-r493] Fixed a bug when iterating through hyperslabs with greater than 2 dimensions.
Diffstat (limited to 'src')
-rw-r--r-- | src/H5D.c | 7 | ||||
-rw-r--r-- | src/H5Shyper.c | 16 | ||||
-rw-r--r-- | src/H5Sprivate.h | 2 | ||||
-rw-r--r-- | src/H5Spublic.h | 2 | ||||
-rw-r--r-- | src/H5public.h | 2 |
5 files changed, 24 insertions, 5 deletions
@@ -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; i<smine_nelmts; i++,b++) { - printf("(%d)%d ",i,*b); + printf("(%d)%u ",i,(unsigned)*b); } printf("\n"); } diff --git a/src/H5Shyper.c b/src/H5Shyper.c index 0c9371e..9eef5ba 100644 --- a/src/H5Shyper.c +++ b/src/H5Shyper.c @@ -373,6 +373,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; @@ -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,\ |