summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhdftest <hdftest@hdfgroup.org>2018-06-24 23:04:23 (GMT)
committerhdftest <hdftest@hdfgroup.org>2018-06-24 23:04:23 (GMT)
commitb193bc11c966d79b76ebc3bbe76728f0693693ef (patch)
tree83b9e6782bc080051d3056f5610952a4bef08ca9 /src
parente9f476dad47ce593f13dacb77b1cc664d1f24e7b (diff)
downloadhdf5-b193bc11c966d79b76ebc3bbe76728f0693693ef.zip
hdf5-b193bc11c966d79b76ebc3bbe76728f0693693ef.tar.gz
hdf5-b193bc11c966d79b76ebc3bbe76728f0693693ef.tar.bz2
Revert "Merge pull request #1116 in HDFFV/hdf5 from ~HDFTEST/hdf5_hft:hdf5_1_10 to develop"
This reverts commit e9f476dad47ce593f13dacb77b1cc664d1f24e7b, reversing changes made to 2ff00b1b937ebe36ac6ddf590c16a4c27fc0b053.
Diffstat (limited to 'src')
-rw-r--r--src/H5Dchunk.c4
-rw-r--r--src/H5Dint.c2
-rw-r--r--src/H5Dmpio.c8
-rw-r--r--src/H5Dvirtual.c36
-rw-r--r--src/H5Fdeprec.c2
-rw-r--r--src/H5Ffake.c15
-rw-r--r--src/H5Fint.c4
-rw-r--r--src/H5Fprivate.h2
-rw-r--r--src/H5Olayout.c10
-rw-r--r--src/H5P.c6
-rw-r--r--src/H5Pdapl.c8
-rw-r--r--src/H5Pdcpl.c41
-rw-r--r--src/H5Pdxpl.c28
-rw-r--r--src/H5Pencdec.c28
-rw-r--r--src/H5Pfapl.c22
-rw-r--r--src/H5Pfcpl.c16
-rw-r--r--src/H5Pgcpl.c8
-rw-r--r--src/H5Plapl.c17
-rw-r--r--src/H5Pocpl.c4
-rw-r--r--src/H5Ppkg.h16
-rw-r--r--src/H5Pprivate.h10
-rw-r--r--src/H5Ppublic.h2
-rw-r--r--src/H5Pstrcpl.c4
-rw-r--r--src/H5Rint.c4
-rw-r--r--src/H5S.c14
-rw-r--r--src/H5Sall.c24
-rw-r--r--src/H5Shyper.c371
-rw-r--r--src/H5Snone.c24
-rw-r--r--src/H5Spkg.h33
-rw-r--r--src/H5Spoint.c197
-rw-r--r--src/H5Sprivate.h21
-rw-r--r--src/H5Sselect.c13
-rw-r--r--src/H5T.c4
-rw-r--r--src/H5public.h8
34 files changed, 287 insertions, 719 deletions
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c
index d45ced0..7216c49 100644
--- a/src/H5Dchunk.c
+++ b/src/H5Dchunk.c
@@ -1931,7 +1931,7 @@ H5D__chunk_file_cb(void H5_ATTR_UNUSED *elem, const H5T_t H5_ATTR_UNUSED *type,
coords_in_chunk[u] = coords[u] - (scaled[u] * fm->layout->u.chunk.dim[u]);
/* Add point to file selection for chunk */
- if(H5S_select_elements(chunk_info->fspace, H5S_SELECT_APPEND, (hsize_t)1, coords_in_chunk) < 0)
+ if(H5S_select_elements(chunk_info->fspace, H5S_SELECT_APPEND, (size_t)1, coords_in_chunk) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSELECT, FAIL, "unable to select element")
/* Increment the number of elemented selected in chunk */
@@ -2011,7 +2011,7 @@ H5D__chunk_mem_cb(void H5_ATTR_UNUSED *elem, const H5T_t H5_ATTR_UNUSED *type, u
} /* end else */
/* Move memory selection iterator to next element in selection */
- if(H5S_SELECT_ITER_NEXT(&fm->mem_iter, (hsize_t)1) < 0)
+ if(H5S_SELECT_ITER_NEXT(&fm->mem_iter, (size_t)1) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "unable to move to next iterator location")
done:
diff --git a/src/H5Dint.c b/src/H5Dint.c
index d08adbe..b9d9cce 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -2506,7 +2506,7 @@ H5D__vlen_get_buf_size(void H5_ATTR_UNUSED *elem, hid_t type_id,
HGOTO_ERROR(H5E_DATASET, H5E_NOSPACE, FAIL, "can't resize tbuf")
/* Select point to read in */
- if(H5S_select_elements(vlen_bufsize->fspace, H5S_SELECT_SET, (hsize_t)1, point) < 0)
+ if(H5S_select_elements(vlen_bufsize->fspace, H5S_SELECT_SET, (size_t)1, point) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCREATE, FAIL, "can't select point")
/* Read in the point (with the custom VL memory allocator) */
diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c
index e621e04..107b751 100644
--- a/src/H5Dmpio.c
+++ b/src/H5Dmpio.c
@@ -2630,7 +2630,6 @@ H5D__chunk_redistribute_shared_chunks(const H5D_io_info_t *io_info, const H5D_ty
int *send_displacements = NULL;
int scatter_recvcount_int;
int mpi_rank, mpi_size, mpi_code;
- hid_t fapl_id = -1; /* File access property list for H5S_encode() */
herr_t ret_value = SUCCEED;
FUNC_ENTER_STATIC
@@ -2645,9 +2644,6 @@ H5D__chunk_redistribute_shared_chunks(const H5D_io_info_t *io_info, const H5D_ty
if ((mpi_size = H5F_mpi_get_size(io_info->dset->oloc.file)) < 0)
HGOTO_ERROR(H5E_IO, H5E_MPI, FAIL, "unable to obtain mpi size")
- if((fapl_id = H5F_get_access_plist(io_info->dset->oloc.file, FALSE)) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get fapl")
-
if (*local_chunk_array_num_entries)
if (NULL == (send_requests = (MPI_Request *) H5MM_malloc(*local_chunk_array_num_entries * sizeof(MPI_Request))))
HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "couldn't allocate send requests buffer")
@@ -2753,7 +2749,7 @@ H5D__chunk_redistribute_shared_chunks(const H5D_io_info_t *io_info, const H5D_ty
/* Determine size of serialized chunk file dataspace, plus the size of
* the data being written
*/
- if (H5S_encode(chunk_info->fspace, &mod_data_p, &mod_data_size, fapl_id) < 0)
+ if (H5S_encode(chunk_info->fspace, &mod_data_p, &mod_data_size) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "unable to get encoded dataspace size")
if ((iter_nelmts = H5S_GET_SELECT_NPOINTS(chunk_info->mspace)) < 0)
@@ -2766,7 +2762,7 @@ H5D__chunk_redistribute_shared_chunks(const H5D_io_info_t *io_info, const H5D_ty
/* Serialize the chunk's file dataspace into the buffer */
mod_data_p = mod_data[num_send_requests];
- if (H5S_encode(chunk_info->fspace, &mod_data_p, &mod_data_size, fapl_id) < 0)
+ if (H5S_encode(chunk_info->fspace, &mod_data_p, &mod_data_size) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "unable to encode dataspace")
/* Intialize iterator for memory selection */
diff --git a/src/H5Dvirtual.c b/src/H5Dvirtual.c
index d80e086..c7c0775 100644
--- a/src/H5Dvirtual.c
+++ b/src/H5Dvirtual.c
@@ -417,11 +417,6 @@ H5D__virtual_store_layout(H5F_t *f, H5O_layout_t *layout)
hsize_t tmp_nentries; /* Temp. variable for # of VDS entries */
uint32_t chksum; /* Checksum for heap data */
size_t i; /* Local index variable */
- H5P_genplist_t *fapl_plist; /* The file access property list */
- hid_t new_fapl_id; /* The file access property list ID */
- H5F_libver_t low_bound = H5F_LIBVER_V110; /* Set the low bound in fapl to latest */
- H5F_libver_t high_bound = H5F_LIBVER_V110; /* Set the high bound in fapl to latest */
- H5F_t *tmp_f = NULL; /* Pointer to faked file structure */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -433,24 +428,6 @@ H5D__virtual_store_layout(H5F_t *f, H5O_layout_t *layout)
/* Create block if # of used entries > 0 */
if(layout->storage.u.virt.list_nused > 0) {
-
- /* Make a copy of the default file access property list */
- if(NULL == (fapl_plist = (H5P_genplist_t *)H5I_object(H5P_LST_FILE_ACCESS_ID_g)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
-
- /* Set latest format in fapl_plist for virtual layout encoding */
- if(H5P_set(fapl_plist, H5F_ACS_LIBVER_LOW_BOUND_NAME, &low_bound) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set 'low' bound for library format versions")
- if(H5P_set(fapl_plist, H5F_ACS_LIBVER_HIGH_BOUND_NAME, &high_bound) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set 'high' bound for library format versions")
- /* Copy and return the fapl id */
- if((new_fapl_id = H5P_copy_plist(fapl_plist, FALSE)) < 0)
- HGOTO_ERROR(H5E_INTERNAL, H5E_CANTINIT, FAIL, "can't copy file access property list")
-
- /* Allocate "fake" file structure with the fapl setting */
- if(NULL == (tmp_f = H5F_fake_alloc((uint8_t)0, new_fapl_id)))
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate fake file struct")
-
/* Allocate array for caching results of strlen */
if(NULL == (str_size = (size_t *)H5MM_malloc(2 * layout->storage.u.virt.list_nused * sizeof(size_t))))
HGOTO_ERROR(H5E_OHDR, H5E_RESOURCE, FAIL, "unable to allocate string length array")
@@ -480,12 +457,12 @@ H5D__virtual_store_layout(H5F_t *f, H5O_layout_t *layout)
block_size += str_size[(2 * i) + 1];
/* Source selection */
- if((select_serial_size = H5S_SELECT_SERIAL_SIZE(layout->storage.u.virt.list[i].source_select, tmp_f)) < 0)
+ if((select_serial_size = H5S_SELECT_SERIAL_SIZE(layout->storage.u.virt.list[i].source_select)) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTENCODE, FAIL, "unable to check dataspace selection size")
block_size += (size_t)select_serial_size;
/* Virtual dataset selection */
- if((select_serial_size = H5S_SELECT_SERIAL_SIZE(layout->storage.u.virt.list[i].source_dset.virtual_select, tmp_f)) < 0)
+ if((select_serial_size = H5S_SELECT_SERIAL_SIZE(layout->storage.u.virt.list[i].source_dset.virtual_select)) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTENCODE, FAIL, "unable to check dataspace selection size")
block_size += (size_t)select_serial_size;
} /* end for */
@@ -522,11 +499,11 @@ H5D__virtual_store_layout(H5F_t *f, H5O_layout_t *layout)
heap_block_p += str_size[(2 * i) + 1];
/* Source selection */
- if(H5S_SELECT_SERIALIZE(layout->storage.u.virt.list[i].source_select, &heap_block_p, tmp_f) < 0)
+ if(H5S_SELECT_SERIALIZE(layout->storage.u.virt.list[i].source_select, &heap_block_p) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to serialize source selection")
/* Virtual selection */
- if(H5S_SELECT_SERIALIZE(layout->storage.u.virt.list[i].source_dset.virtual_select, &heap_block_p, tmp_f) < 0)
+ if(H5S_SELECT_SERIALIZE(layout->storage.u.virt.list[i].source_dset.virtual_select, &heap_block_p) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to serialize virtual selection")
} /* end for */
@@ -540,14 +517,9 @@ H5D__virtual_store_layout(H5F_t *f, H5O_layout_t *layout)
} /* end if */
done:
- /* Release fake file structure */
- if(tmp_f && H5F_fake_free(tmp_f) < 0)
- HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release fake file struct")
-
heap_block = (uint8_t *)H5MM_xfree(heap_block);
str_size = (size_t *)H5MM_xfree(str_size);
-
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__virtual_store_layout() */
diff --git a/src/H5Fdeprec.c b/src/H5Fdeprec.c
index 703c9cc..6417956 100644
--- a/src/H5Fdeprec.c
+++ b/src/H5Fdeprec.c
@@ -149,7 +149,7 @@ done:
* Purpose: Enable switching between latest or non-latest format while
* a file is open.
* This is deprecated starting release 1.10.2 and is modified
- * to call the private H5F__set_libver_bounds() to set the
+ * to call the private H5F_set_libver_bounds() to set the
* bounds.
*
* Before release 1.10.2, the library supports only two
diff --git a/src/H5Ffake.c b/src/H5Ffake.c
index d199cf0..6072f2e 100644
--- a/src/H5Ffake.c
+++ b/src/H5Ffake.c
@@ -18,8 +18,6 @@
#include "H5private.h" /* Generic Functions */
#include "H5Eprivate.h" /* Error handling */
#include "H5Fpkg.h" /* File access */
-#include "H5Iprivate.h" /* IDs */
-#include "H5Pprivate.h" /* Property lists */
/* PRIVATE PROTOTYPES */
@@ -42,10 +40,9 @@
*-------------------------------------------------------------------------
*/
H5F_t *
-H5F_fake_alloc(uint8_t sizeof_size, hid_t fapl_id)
+H5F_fake_alloc(uint8_t sizeof_size)
{
H5F_t *f = NULL; /* Pointer to fake file struct */
- H5P_genplist_t *plist; /* Property list */
H5F_t *ret_value = NULL; /* Return value */
FUNC_ENTER_NOAPI(NULL)
@@ -62,16 +59,6 @@ H5F_fake_alloc(uint8_t sizeof_size, hid_t fapl_id)
else
f->shared->sizeof_size = sizeof_size;
- /* Set low/high bounds according to the setting in fapl_id */
- /* See H5F_new() in H5Fint.c */
- if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not file access property list")
-
- if(H5P_get(plist, H5F_ACS_LIBVER_LOW_BOUND_NAME, &(f->shared->low_bound)) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't get 'low' bound for library format versions")
- if(H5P_get(plist, H5F_ACS_LIBVER_HIGH_BOUND_NAME, &(f->shared->high_bound)) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't get 'high' bound for library format versions")
-
/* Set return value */
ret_value = f;
diff --git a/src/H5Fint.c b/src/H5Fint.c
index 031f37c..abc638a 100644
--- a/src/H5Fint.c
+++ b/src/H5Fint.c
@@ -2762,7 +2762,7 @@ H5F_set_store_msg_crt_idx(H5F_t *f, hbool_t flag)
/*-------------------------------------------------------------------------
- * Function: H5F__set_libver_bounds()
+ * Function: H5F_set_libver_bounds()
*
* Purpose: Set the file's low and high bound to the input parameters
* 'low' and 'high' respectively.
@@ -2818,7 +2818,7 @@ H5F__set_libver_bounds(H5F_t *f, H5F_libver_t low, H5F_libver_t high)
done:
FUNC_LEAVE_NOAPI(ret_value)
-} /* H5F__set_libver_bounds() */
+} /* H5F_set_libver_bounds() */
/*-------------------------------------------------------------------------
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h
index fae962f..f06d4d0 100644
--- a/src/H5Fprivate.h
+++ b/src/H5Fprivate.h
@@ -821,7 +821,7 @@ H5_DLL void H5F_addr_decode_len(size_t addr_len, const uint8_t **pp, haddr_t *ad
H5_DLL void H5F_sfile_assert_num(unsigned n);
/* Routines for creating & destroying "fake" file structures */
-H5_DLL H5F_t *H5F_fake_alloc(uint8_t sizeof_size, hid_t fapl_id);
+H5_DLL H5F_t *H5F_fake_alloc(uint8_t sizeof_size);
H5_DLL herr_t H5F_fake_free(H5F_t *f);
/* Superblock related routines */
diff --git a/src/H5Olayout.c b/src/H5Olayout.c
index afaddfa..d8f05f0 100644
--- a/src/H5Olayout.c
+++ b/src/H5Olayout.c
@@ -548,10 +548,8 @@ done:
static herr_t
H5O__layout_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
{
- const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg;
- uint8_t *heap_block = NULL;
- size_t *str_size = NULL;
- unsigned u;
+ const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg;
+ unsigned u;
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -687,10 +685,6 @@ H5O__layout_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p,
} /* end switch */
done:
-
- heap_block = (uint8_t *)H5MM_xfree(heap_block);
- str_size = (size_t *)H5MM_xfree(str_size);
-
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O__layout_encode() */
diff --git a/src/H5P.c b/src/H5P.c
index 62d518e..f163e9e 100644
--- a/src/H5P.c
+++ b/src/H5P.c
@@ -840,10 +840,6 @@ herr_t
H5Pencode(hid_t plist_id, void *buf, size_t *nalloc)
{
H5P_genplist_t *plist; /* Property list to query */
- H5P_genplist_t *fapl_plist;
- hid_t new_fapl_id;
- H5F_libver_t low_bound = H5F_LIBVER_V110;
- H5F_libver_t high_bound = H5F_LIBVER_V110;
herr_t ret_value = SUCCEED; /* return value */
FUNC_ENTER_API(FAIL)
@@ -854,7 +850,7 @@ H5Pencode(hid_t plist_id, void *buf, size_t *nalloc)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list");
/* Call the internal encode routine */
- if((ret_value = H5P__encode(plist, TRUE, buf, nalloc, H5P_FILE_ACCESS_DEFAULT)) < 0)
+ if((ret_value = H5P__encode(plist, TRUE, buf, nalloc)) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "unable to encode property list");
done:
diff --git a/src/H5Pdapl.c b/src/H5Pdapl.c
index ad2ae4c..da06297 100644
--- a/src/H5Pdapl.c
+++ b/src/H5Pdapl.c
@@ -121,7 +121,7 @@ static herr_t H5P__encode_chunk_cache_nbytes(const void *value, void **_pp,
static herr_t H5P__decode_chunk_cache_nbytes(const void **_pp, void *_value);
/* Property list callbacks */
-static herr_t H5P__dacc_vds_view_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dacc_vds_view_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dacc_vds_view_dec(const void **pp, void *value);
static herr_t H5P__dapl_vds_file_pref_set(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__dapl_vds_file_pref_get(hid_t prop_id, const char* name, size_t size, void* value);
@@ -135,7 +135,7 @@ static herr_t H5P__dapl_vds_file_pref_close(const char* name, size_t size, void*
/* Property list callbacks */
static herr_t H5P__dapl_efile_pref_set(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__dapl_efile_pref_get(hid_t prop_id, const char* name, size_t size, void* value);
-static herr_t H5P__dapl_efile_pref_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__dapl_efile_pref_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__dapl_efile_pref_dec(const void **_pp, void *value);
static herr_t H5P__dapl_efile_pref_del(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__dapl_efile_pref_copy(const char* name, size_t size, void* value);
@@ -562,7 +562,7 @@ H5P__dapl_efile_pref_get(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dapl_efile_pref_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dapl_efile_pref_enc(const void *value, void **_pp, size_t *size)
{
const char *efile_pref = *(const char * const *)value;
uint8_t **pp = (uint8_t **)_pp;
@@ -1157,7 +1157,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dacc_vds_view_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dacc_vds_view_enc(const void *value, void **_pp, size_t *size)
{
const H5D_vds_view_t *view = (const H5D_vds_view_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c
index b451ed3..d69b063 100644
--- a/src/H5Pdcpl.c
+++ b/src/H5Pdcpl.c
@@ -147,7 +147,7 @@ static herr_t H5P__dcrt_reg_prop(H5P_genclass_t *pclass);
/* Property callbacks */
static herr_t H5P__dcrt_layout_set(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__dcrt_layout_get(hid_t prop_id, const char *name, size_t size, void *value);
-static herr_t H5P__dcrt_layout_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dcrt_layout_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dcrt_layout_dec(const void **pp, void *value);
static herr_t H5P__dcrt_layout_del(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__dcrt_layout_copy(const char *name, size_t size, void *value);
@@ -155,14 +155,14 @@ static int H5P__dcrt_layout_cmp(const void *value1, const void *value2, size_t s
static herr_t H5P__dcrt_layout_close(const char *name, size_t size, void *value);
static herr_t H5P__dcrt_fill_value_set(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__dcrt_fill_value_get(hid_t prop_id, const char *name, size_t size, void *value);
-static herr_t H5P__dcrt_fill_value_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dcrt_fill_value_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dcrt_fill_value_dec(const void **pp, void *value);
static herr_t H5P__dcrt_fill_value_del(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__dcrt_fill_value_copy(const char *name, size_t size, void *value);
static herr_t H5P__dcrt_fill_value_close(const char *name, size_t size, void *value);
static herr_t H5P__dcrt_ext_file_list_set(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__dcrt_ext_file_list_get(hid_t prop_id, const char *name, size_t size, void *value);
-static herr_t H5P__dcrt_ext_file_list_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dcrt_ext_file_list_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dcrt_ext_file_list_dec(const void **pp, void *value);
static herr_t H5P__dcrt_ext_file_list_del(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__dcrt_ext_file_list_copy(const char *name, size_t size, void *value);
@@ -367,41 +367,21 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dcrt_layout_enc(const void *value, void **_pp, size_t *size, void *_udata)
+H5P__dcrt_layout_enc(const void *value, void **_pp, size_t *size)
{
const H5O_layout_t *layout = (const H5O_layout_t *)value; /* Create local aliases for values */
- H5P_enc_cb_info_t *udata = (H5P_enc_cb_info_t *)_udata; /* User data for encode callback */
uint8_t **pp = (uint8_t **)_pp;
uint8_t *tmp_p;
size_t tmp_size;
size_t u; /* Local index variable */
- H5P_genplist_t *fapl_plist; /* The file access property list */
- hid_t new_fapl_id; /* The file access property list ID */
- H5F_libver_t low_bound = H5F_LIBVER_V110; /* Set the low bound in fapl to latest */
- H5F_libver_t high_bound = H5F_LIBVER_V110; /* Set the high bound in fapl to latest */
herr_t ret_value = SUCCEED; /* Return value */
-
FUNC_ENTER_STATIC
/* Sanity check */
HDassert(layout);
HDassert(size);
- /* Make a copy of the default file access property list */
- if(NULL == (fapl_plist = (H5P_genplist_t *)H5I_object(H5P_LST_FILE_ACCESS_ID_g)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
-
- /* Set latest format in fapl_plist */
- /* This will eventually be used by VDS to encode datasets via H5S_encode() */
- if(H5P_set(fapl_plist, H5F_ACS_LIBVER_LOW_BOUND_NAME, &low_bound) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set 'low' bound for library format versions")
- if(H5P_set(fapl_plist, H5F_ACS_LIBVER_HIGH_BOUND_NAME, &high_bound) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set 'high' bound for library format versions")
-
- if((new_fapl_id = H5P_copy_plist(fapl_plist, FALSE)) < 0)
- HGOTO_ERROR(H5E_INTERNAL, H5E_CANTINIT, FAIL, "can't copy file access property list")
-
if(NULL != *pp) {
/* Encode layout type */
*(*pp)++ = (uint8_t)layout->type;
@@ -447,15 +427,14 @@ H5P__dcrt_layout_enc(const void *value, void **_pp, size_t *size, void *_udata)
* list before we get here. */
tmp_size = (size_t)-1;
tmp_p = *pp;
-
- if(H5S_encode(layout->storage.u.virt.list[u].source_select, pp, &tmp_size, new_fapl_id) < 0)
+ if(H5S_encode(layout->storage.u.virt.list[u].source_select, pp, &tmp_size) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "unable to serialize source selection")
*size += (size_t)(*pp - tmp_p);
/* Virtual dataset selection. Same notes as above apply. */
tmp_size = (size_t)-1;
tmp_p = *pp;
- if(H5S_encode(layout->storage.u.virt.list[u].source_dset.virtual_select, pp, &tmp_size, new_fapl_id) < 0)
+ if(H5S_encode(layout->storage.u.virt.list[u].source_dset.virtual_select, pp, &tmp_size) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "unable to serialize virtual selection")
*size += (size_t)(*pp - tmp_p);
} /* end for */
@@ -488,14 +467,14 @@ H5P__dcrt_layout_enc(const void *value, void **_pp, size_t *size, void *_udata)
/* Source selection */
tmp_size = (size_t)0;
tmp_p = NULL;
- if(H5S_encode(layout->storage.u.virt.list[u].source_select, &tmp_p, &tmp_size, new_fapl_id) < 0)
+ if(H5S_encode(layout->storage.u.virt.list[u].source_select, &tmp_p, &tmp_size) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "unable to serialize source selection")
*size += tmp_size;
/* Virtual dataset selection */
tmp_size = (size_t)0;
tmp_p = NULL;
- if(H5S_encode(layout->storage.u.virt.list[u].source_dset.virtual_select, &tmp_p, &tmp_size, new_fapl_id) < 0)
+ if(H5S_encode(layout->storage.u.virt.list[u].source_dset.virtual_select, &tmp_p, &tmp_size) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "unable to serialize virtual selection")
*size += tmp_size;
} /* end for */
@@ -1001,7 +980,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dcrt_fill_value_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dcrt_fill_value_enc(const void *value, void **_pp, size_t *size)
{
const H5O_fill_t *fill = (const H5O_fill_t *)value; /* Create local aliases for values */
size_t dt_size = 0; /* Size of encoded datatype */
@@ -1404,7 +1383,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dcrt_ext_file_list_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dcrt_ext_file_list_enc(const void *value, void **_pp, size_t *size)
{
const H5O_efl_t *efl = (const H5O_efl_t *)value; /* Create local aliases for values */
size_t len = 0; /* String length of slot name */
diff --git a/src/H5Pdxpl.c b/src/H5Pdxpl.c
index 0daed29..b56c137 100644
--- a/src/H5Pdxpl.c
+++ b/src/H5Pdxpl.c
@@ -172,21 +172,21 @@
static herr_t H5P__dxfr_reg_prop(H5P_genclass_t *pclass);
/* Property list callbacks */
-static herr_t H5P__dxfr_bkgr_buf_type_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_bkgr_buf_type_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_bkgr_buf_type_dec(const void **pp, void *value);
-static herr_t H5P__dxfr_btree_split_ratio_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_btree_split_ratio_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_btree_split_ratio_dec(const void **pp, void *value);
-static herr_t H5P__dxfr_io_xfer_mode_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_io_xfer_mode_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_io_xfer_mode_dec(const void **pp, void *value);
-static herr_t H5P__dxfr_mpio_collective_opt_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_mpio_collective_opt_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_mpio_collective_opt_dec(const void **pp, void *value);
-static herr_t H5P__dxfr_mpio_chunk_opt_hard_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_mpio_chunk_opt_hard_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_mpio_chunk_opt_hard_dec(const void **pp, void *value);
-static herr_t H5P__dxfr_edc_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_edc_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_edc_dec(const void **pp, void *value);
static herr_t H5P__dxfr_xform_set(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__dxfr_xform_get(hid_t prop_id, const char* name, size_t size, void* value);
-static herr_t H5P__dxfr_xform_enc(const void *value, void **pp, size_t *size, void *udata);
+static herr_t H5P__dxfr_xform_enc(const void *value, void **pp, size_t *size);
static herr_t H5P__dxfr_xform_dec(const void **pp, void *value);
static herr_t H5P__dxfr_xform_del(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__dxfr_xform_copy(const char* name, size_t size, void* value);
@@ -421,7 +421,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_bkgr_buf_type_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_bkgr_buf_type_enc(const void *value, void **_pp, size_t *size)
{
const H5T_bkg_t *bkgr_buf_type = (const H5T_bkg_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -494,7 +494,7 @@ H5P__dxfr_bkgr_buf_type_dec(const void **_pp, void *_value)
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_btree_split_ratio_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_btree_split_ratio_enc(const void *value, void **_pp, size_t *size)
{
const double *btree_split_ratio = (const double *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -655,7 +655,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_xform_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_xform_enc(const void *value, void **_pp, size_t *size)
{
const H5Z_data_xform_t *data_xform_prop = *(const H5Z_data_xform_t * const *)value; /* Create local alias for values */
const char *pexp = NULL; /* Pointer to transform expression */
@@ -1743,7 +1743,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_io_xfer_mode_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_io_xfer_mode_enc(const void *value, void **_pp, size_t *size)
{
const H5FD_mpio_xfer_t *xfer_mode = (const H5FD_mpio_xfer_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -1816,7 +1816,7 @@ H5P__dxfr_io_xfer_mode_dec(const void **_pp, void *_value)
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_mpio_collective_opt_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_mpio_collective_opt_enc(const void *value, void **_pp, size_t *size)
{
const H5FD_mpio_collective_opt_t *coll_opt = (const H5FD_mpio_collective_opt_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -1889,7 +1889,7 @@ H5P__dxfr_mpio_collective_opt_dec(const void **_pp, void *_value)
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_mpio_chunk_opt_hard_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_mpio_chunk_opt_hard_enc(const void *value, void **_pp, size_t *size)
{
const H5FD_mpio_chunk_opt_t *chunk_opt = (const H5FD_mpio_chunk_opt_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -2074,7 +2074,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__dxfr_edc_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__dxfr_edc_enc(const void *value, void **_pp, size_t *size)
{
const H5Z_EDC_t *check = (const H5Z_EDC_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Pencdec.c b/src/H5Pencdec.c
index 3332098..73c48d7 100644
--- a/src/H5Pencdec.c
+++ b/src/H5Pencdec.c
@@ -49,10 +49,9 @@
/* Typedef for iterator when encoding a property list */
typedef struct {
- hbool_t encode; /* Whether the property list should be encoded */
- size_t *enc_size_ptr; /* Pointer to size of encoded buffer */
- void **pp; /* Pointer to encoding buffer pointer */
- hid_t fapl_id; /* File access property list */
+ hbool_t encode; /* Whether the property list should be encoded */
+ size_t *enc_size_ptr; /* Pointer to size of encoded buffer */
+ void **pp; /* Pointer to encoding buffer pointer */
} H5P_enc_iter_ud_t;
@@ -91,7 +90,7 @@ typedef struct {
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_size_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_size_t(const void *value, void **_pp, size_t *size)
{
uint64_t enc_value = (uint64_t)*(const size_t *)value; /* Property value to encode */
uint8_t **pp = (uint8_t **)_pp;
@@ -133,7 +132,7 @@ H5P__encode_size_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UNU
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_hsize_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_hsize_t(const void *value, void **_pp, size_t *size)
{
uint64_t enc_value = (uint64_t)*(const hsize_t *)value; /* Property value to encode */
unsigned enc_size = H5VM_limit_enc_size(enc_value); /* Size of encoded property */
@@ -174,7 +173,7 @@ H5P__encode_hsize_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UN
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_unsigned(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_unsigned(const void *value, void **_pp, size_t *size)
{
uint8_t **pp = (uint8_t **)_pp;
@@ -213,7 +212,7 @@ H5P__encode_unsigned(const void *value, void **_pp, size_t *size, void H5_ATTR_U
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_uint8_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_uint8_t(const void *value, void **_pp, size_t *size)
{
uint8_t **pp = (uint8_t **)_pp;
@@ -249,7 +248,7 @@ H5P__encode_uint8_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UN
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_hbool_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_hbool_t(const void *value, void **_pp, size_t *size)
{
uint8_t **pp = (uint8_t **)_pp;
@@ -284,7 +283,7 @@ H5P__encode_hbool_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UN
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_double(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_double(const void *value, void **_pp, size_t *size)
{
uint8_t **pp = (uint8_t **)_pp;
@@ -333,8 +332,7 @@ static int
H5P__encode_cb(H5P_genprop_t *prop, void *_udata)
{
H5P_enc_iter_ud_t *udata = (H5P_enc_iter_ud_t *)_udata; /* Pointer to user data */
- H5P_enc_cb_info_t cb_udata; /* User data for property iteration callback */
- int ret_value = H5_ITER_CONT; /* Return value */
+ int ret_value = H5_ITER_CONT; /* Return value */
FUNC_ENTER_STATIC
@@ -357,8 +355,7 @@ H5P__encode_cb(H5P_genprop_t *prop, void *_udata)
/* Encode (or not, if *(udata->pp) is NULL) the property value */
prop_value_len = 0;
- cb_udata.fapl_id = udata->fapl_id;
- if((prop->encode)(prop->value, udata->pp, &prop_value_len, &cb_udata) < 0)
+ if((prop->encode)(prop->value, udata->pp, &prop_value_len) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, H5_ITER_ERROR, "property encoding routine failed")
*(udata->enc_size_ptr) += prop_value_len;
} /* end if */
@@ -393,7 +390,7 @@ done:
--------------------------------------------------------------------------*/
herr_t
H5P__encode(const H5P_genplist_t *plist, hbool_t enc_all_prop, void *buf,
- size_t *nalloc, hid_t fapl_id)
+ size_t *nalloc)
{
H5P_enc_iter_ud_t udata; /* User data for property iteration callback */
uint8_t *p = (uint8_t *)buf; /* Temporary pointer to encoding buffer */
@@ -428,7 +425,6 @@ H5P__encode(const H5P_genplist_t *plist, hbool_t enc_all_prop, void *buf,
udata.encode = encode;
udata.enc_size_ptr = &encode_size;
udata.pp = (void **)&p;
- udata.fapl_id = fapl_id;
/* Iterate over all properties in property list, encoding them */
idx = 0;
diff --git a/src/H5Pfapl.c b/src/H5Pfapl.c
index a7c8218..eded286 100644
--- a/src/H5Pfapl.c
+++ b/src/H5Pfapl.c
@@ -297,18 +297,18 @@ static int H5P__facc_file_image_info_cmp(const void *value1, const void *value2,
static herr_t H5P__facc_file_image_info_close(const char *name, size_t size, void *value);
/* encode & decode callbacks */
-static herr_t H5P__facc_cache_config_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__facc_cache_config_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__facc_cache_config_dec(const void **_pp, void *value);
static int H5P__facc_cache_config_cmp(const void *value1, const void *value2, size_t size);
-static herr_t H5P__facc_fclose_degree_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__facc_fclose_degree_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__facc_fclose_degree_dec(const void **pp, void *value);
-static herr_t H5P__facc_multi_type_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__facc_multi_type_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__facc_multi_type_dec(const void **_pp, void *value);
static herr_t H5P__facc_libver_type_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__facc_libver_type_dec(const void **_pp, void *value);
/* Metadata cache log location property callbacks */
-static herr_t H5P_facc_mdc_log_location_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P_facc_mdc_log_location_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P_facc_mdc_log_location_dec(const void **_pp, void *value);
static herr_t H5P_facc_mdc_log_location_del(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P_facc_mdc_log_location_copy(const char *name, size_t size, void *value);
@@ -317,7 +317,7 @@ static herr_t H5P_facc_mdc_log_location_close(const char *name, size_t size, voi
/* Metadata cache image property callbacks */
static int H5P__facc_cache_image_config_cmp(const void *_config1, const void *_config2, size_t H5_ATTR_UNUSED size);
-static herr_t H5P__facc_cache_image_config_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__facc_cache_image_config_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__facc_cache_image_config_dec(const void **_pp, void *_value);
@@ -3019,7 +3019,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__facc_cache_image_config_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__facc_cache_image_config_enc(const void *value, void **_pp, size_t *size)
{
const H5AC_cache_image_config_t *config = (const H5AC_cache_image_config_t *)value; /* Create local aliases for value */
uint8_t **pp = (uint8_t **)_pp;
@@ -3445,7 +3445,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__facc_cache_config_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__facc_cache_config_enc(const void *value, void **_pp, size_t *size)
{
const H5AC_cache_config_t *config = (const H5AC_cache_config_t *)value; /* Create local aliases for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -3725,7 +3725,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__facc_fclose_degree_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__facc_fclose_degree_enc(const void *value, void **_pp, size_t *size)
{
const H5F_close_degree_t *fclose_degree = (const H5F_close_degree_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -3798,7 +3798,7 @@ H5P__facc_fclose_degree_dec(const void **_pp, void *_value)
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__facc_multi_type_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__facc_multi_type_enc(const void *value, void **_pp, size_t *size)
{
const H5FD_mem_t *type = (const H5FD_mem_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -4298,7 +4298,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P_facc_mdc_log_location_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P_facc_mdc_log_location_enc(const void *value, void **_pp, size_t *size)
{
const char *log_location = *(const char * const *)value;
uint8_t **pp = (uint8_t **)_pp;
@@ -4598,7 +4598,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5P__encode_coll_md_read_flag_t(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__encode_coll_md_read_flag_t(const void *value, void **_pp, size_t *size)
{
const H5P_coll_md_read_flag_t *coll_md_read_flag = (const H5P_coll_md_read_flag_t *)value;
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Pfcpl.c b/src/H5Pfcpl.c
index 720c526..6b0d2c0 100644
--- a/src/H5Pfcpl.c
+++ b/src/H5Pfcpl.c
@@ -132,13 +132,13 @@
static herr_t H5P_fcrt_reg_prop(H5P_genclass_t *pclass);
/* property callbacks */
-static herr_t H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__fcrt_btree_rank_dec(const void **_pp, void *value);
-static herr_t H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__fcrt_shmsg_index_types_dec(const void **_pp, void *value);
-static herr_t H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__fcrt_shmsg_index_minsize_dec(const void **_pp, void *value);
-static herr_t H5P__fcrt_fspace_strategy_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__fcrt_fspace_strategy_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__fcrt_fspace_strategy_dec(const void **_pp, void *_value);
@@ -722,7 +722,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size)
{
const unsigned *btree_k = (const unsigned *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -1013,7 +1013,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size)
{
const unsigned *type_flags = (const unsigned *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -1106,7 +1106,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size)
{
const unsigned *minsizes = (const unsigned *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -1388,7 +1388,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__fcrt_fspace_strategy_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__fcrt_fspace_strategy_enc(const void *value, void **_pp, size_t *size)
{
const H5F_fspace_strategy_t *strategy = (const H5F_fspace_strategy_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Pgcpl.c b/src/H5Pgcpl.c
index a719616..6f1fab1 100644
--- a/src/H5Pgcpl.c
+++ b/src/H5Pgcpl.c
@@ -69,9 +69,9 @@
static herr_t H5P__gcrt_reg_prop(H5P_genclass_t *pclass);
/* Property callbacks */
-static herr_t H5P__gcrt_group_info_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__gcrt_group_info_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__gcrt_group_info_dec(const void **_pp, void *value);
-static herr_t H5P__gcrt_link_info_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__gcrt_link_info_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__gcrt_link_info_dec(const void **_pp, void *value);
@@ -546,7 +546,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__gcrt_group_info_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__gcrt_group_info_enc(const void *value, void **_pp, size_t *size)
{
const H5O_ginfo_t *ginfo = (const H5O_ginfo_t *)value; /* Create local aliases for values */
uint8_t **pp = (uint8_t **)_pp;
@@ -634,7 +634,7 @@ H5P__gcrt_group_info_dec(const void **_pp, void *_value)
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__gcrt_link_info_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__gcrt_link_info_enc(const void *value, void **_pp, size_t *size)
{
const H5O_linfo_t *linfo = (const H5O_linfo_t *)value; /* Create local aliases for values */
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Plapl.c b/src/H5Plapl.c
index 4a95991..18b81ac 100644
--- a/src/H5Plapl.c
+++ b/src/H5Plapl.c
@@ -114,7 +114,7 @@ static herr_t H5P__lacc_reg_prop(H5P_genclass_t *pclass);
/* Property list callbacks */
static herr_t H5P__lacc_elink_pref_set(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__lacc_elink_pref_get(hid_t prop_id, const char* name, size_t size, void* value);
-static herr_t H5P__lacc_elink_pref_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__lacc_elink_pref_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__lacc_elink_pref_dec(const void **_pp, void *value);
static herr_t H5P__lacc_elink_pref_del(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__lacc_elink_pref_copy(const char* name, size_t size, void* value);
@@ -122,7 +122,7 @@ static int H5P__lacc_elink_pref_cmp(const void *value1, const void *value2, size
static herr_t H5P__lacc_elink_pref_close(const char* name, size_t size, void* value);
static herr_t H5P__lacc_elink_fapl_set(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__lacc_elink_fapl_get(hid_t prop_id, const char* name, size_t size, void* value);
-static herr_t H5P__lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__lacc_elink_fapl_dec(const void **_pp, void *value);
static herr_t H5P__lacc_elink_fapl_del(hid_t prop_id, const char* name, size_t size, void* value);
static herr_t H5P__lacc_elink_fapl_copy(const char* name, size_t size, void* value);
@@ -338,14 +338,13 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size, void *_udata)
+H5P__lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size)
{
- const hid_t *elink_fapl = (const hid_t *)value; /* Property to encode */
+ const hid_t *elink_fapl = (const hid_t *)value; /* Property to encode */
uint8_t **pp = (uint8_t **)_pp;
- H5P_enc_cb_info_t *udata = (H5P_enc_cb_info_t *)_udata; /* User data for encode callback */
H5P_genplist_t *fapl_plist; /* Pointer to property list */
hbool_t non_default_fapl = FALSE; /* Whether the FAPL is non-default */
- size_t fapl_size = 0; /* FAPL's encoded size */
+ size_t fapl_size = 0; /* FAPL's encoded size */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -365,7 +364,7 @@ H5P__lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size, void *_uda
/* Encode the property list, if non-default */
/* (if *pp == NULL, will only compute the size) */
if(non_default_fapl) {
- if(H5P__encode(fapl_plist, TRUE, NULL, &fapl_size, udata->fapl_id) < 0)
+ if(H5P__encode(fapl_plist, TRUE, NULL, &fapl_size) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "can't encode property list")
if(*pp) {
@@ -380,7 +379,7 @@ H5P__lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size, void *_uda
UINT64ENCODE_VAR(*pp, enc_value, enc_size);
/* encode the plist */
- if(H5P__encode(fapl_plist, TRUE, *pp, &fapl_size, udata->fapl_id) < 0)
+ if(H5P__encode(fapl_plist, TRUE, *pp, &fapl_size) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "can't encode property list")
*pp += fapl_size;
@@ -689,7 +688,7 @@ H5P__lacc_elink_pref_get(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__lacc_elink_pref_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__lacc_elink_pref_enc(const void *value, void **_pp, size_t *size)
{
const char *elink_pref = *(const char * const *)value;
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Pocpl.c b/src/H5Pocpl.c
index b3c472e..be41e32 100644
--- a/src/H5Pocpl.c
+++ b/src/H5Pocpl.c
@@ -90,7 +90,7 @@
static herr_t H5P__ocrt_reg_prop(H5P_genclass_t *pclass);
/* Property callbacks */
-static herr_t H5P__ocrt_pipeline_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__ocrt_pipeline_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__ocrt_pipeline_dec(const void **_pp, void *value);
static herr_t H5P__ocrt_pipeline_set(hid_t prop_id, const char *name, size_t size, void *value);
static herr_t H5P__ocrt_pipeline_get(hid_t prop_id, const char *name, size_t size, void *value);
@@ -1459,7 +1459,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__ocrt_pipeline_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__ocrt_pipeline_enc(const void *value, void **_pp, size_t *size)
{
const H5O_pline_t *pline = (const H5O_pline_t *)value;
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Ppkg.h b/src/H5Ppkg.h
index 2cf1342..13463ae 100644
--- a/src/H5Ppkg.h
+++ b/src/H5Ppkg.h
@@ -176,21 +176,21 @@ H5_DLL hid_t H5P__new_plist_of_type(H5P_plist_type_t type);
/* Encode/decode routines */
H5_DLL herr_t H5P__encode(const H5P_genplist_t *plist, hbool_t enc_all_prop,
- void *buf, size_t *nalloc, hid_t fapl_id);
+ void *buf, size_t *nalloc);
H5_DLL hid_t H5P__decode(const void *buf);
-H5_DLL herr_t H5P__encode_hsize_t(const void *value, void **_pp, size_t *size, void *udata);
-H5_DLL herr_t H5P__encode_size_t(const void *value, void **_pp, size_t *size, void *udata);
-H5_DLL herr_t H5P__encode_unsigned(const void *value, void **_pp, size_t *size, void *udata);
-H5_DLL herr_t H5P__encode_uint8_t(const void *value, void **_pp, size_t *size, void *udata);
-H5_DLL herr_t H5P__encode_hbool_t(const void *value, void **_pp, size_t *size, void *udata);
-H5_DLL herr_t H5P__encode_double(const void *value, void **_pp, size_t *size, void *udat);
+H5_DLL herr_t H5P__encode_hsize_t(const void *value, void **_pp, size_t *size);
+H5_DLL herr_t H5P__encode_size_t(const void *value, void **_pp, size_t *size);
+H5_DLL herr_t H5P__encode_unsigned(const void *value, void **_pp, size_t *size);
+H5_DLL herr_t H5P__encode_uint8_t(const void *value, void **_pp, size_t *size);
+H5_DLL herr_t H5P__encode_hbool_t(const void *value, void **_pp, size_t *size);
+H5_DLL herr_t H5P__encode_double(const void *value, void **_pp, size_t *size);
H5_DLL herr_t H5P__decode_hsize_t(const void **_pp, void *value);
H5_DLL herr_t H5P__decode_size_t(const void **_pp, void *value);
H5_DLL herr_t H5P__decode_unsigned(const void **_pp, void *value);
H5_DLL herr_t H5P__decode_uint8_t(const void **_pp, void *value);
H5_DLL herr_t H5P__decode_hbool_t(const void **_pp, void *value);
H5_DLL herr_t H5P__decode_double(const void **_pp, void *value);
-H5_DLL herr_t H5P__encode_coll_md_read_flag_t(const void *value, void **_pp, size_t *size, void *udata);
+H5_DLL herr_t H5P__encode_coll_md_read_flag_t(const void *value, void **_pp, size_t *size);
H5_DLL herr_t H5P__decode_coll_md_read_flag_t(const void **_pp, void *value);
/* Private OCPL routines */
diff --git a/src/H5Pprivate.h b/src/H5Pprivate.h
index a18df06..1a2bb95 100644
--- a/src/H5Pprivate.h
+++ b/src/H5Pprivate.h
@@ -84,16 +84,6 @@ typedef enum H5P_plist_type_t {
/* Function pointer for library classes with properties to register */
typedef herr_t (*H5P_reg_prop_func_t)(H5P_genclass_t *pclass);
-/* Move encode/decode callback typedefs from H5Ppublic.h: not exposed to user */
-/* Add a parameter to encode callback */
-typedef herr_t (*H5P_prp_encode_func_t)(const void *value, void **buf, size_t *size, void *udata);
-typedef herr_t (*H5P_prp_decode_func_t)(const void **buf, void *value);
-
-/* User data passed to encode callback */
-typedef struct H5P_enc_cb_info_t {
- hid_t fapl_id; /* File access property list */
-} H5P_enc_cb_info_t;
-
/*
* Each library property list class has a variable of this type that contains
* class variables and methods used to initialize the class.
diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h
index 77aa816..a2c0418 100644
--- a/src/H5Ppublic.h
+++ b/src/H5Ppublic.h
@@ -116,6 +116,8 @@ typedef herr_t (*H5P_prp_cb2_t)(hid_t prop_id, const char *name, size_t size, vo
typedef H5P_prp_cb1_t H5P_prp_create_func_t;
typedef H5P_prp_cb2_t H5P_prp_set_func_t;
typedef H5P_prp_cb2_t H5P_prp_get_func_t;
+typedef herr_t (*H5P_prp_encode_func_t)(const void *value, void **buf, size_t *size);
+typedef herr_t (*H5P_prp_decode_func_t)(const void **buf, void *value);
typedef H5P_prp_cb2_t H5P_prp_delete_func_t;
typedef H5P_prp_cb1_t H5P_prp_copy_func_t;
typedef int (*H5P_prp_compare_func_t)(const void *value1, const void *value2, size_t size);
diff --git a/src/H5Pstrcpl.c b/src/H5Pstrcpl.c
index b84d69b..fb91356 100644
--- a/src/H5Pstrcpl.c
+++ b/src/H5Pstrcpl.c
@@ -69,7 +69,7 @@
static herr_t H5P__strcrt_reg_prop(H5P_genclass_t *pclass);
/* encode & decode callbacks */
-static herr_t H5P__strcrt_char_encoding_enc(const void *value, void **_pp, size_t *size, void *udata);
+static herr_t H5P__strcrt_char_encoding_enc(const void *value, void **_pp, size_t *size);
static herr_t H5P__strcrt_char_encoding_dec(const void **_pp, void *value);
@@ -227,7 +227,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5P__strcrt_char_encoding_enc(const void *value, void **_pp, size_t *size, void H5_ATTR_UNUSED *udata)
+H5P__strcrt_char_encoding_enc(const void *value, void **_pp, size_t *size)
{
const H5T_cset_t *encoding = (const H5T_cset_t *)value; /* Create local alias for values */
uint8_t **pp = (uint8_t **)_pp;
diff --git a/src/H5Rint.c b/src/H5Rint.c
index 12b4878..acf6b56 100644
--- a/src/H5Rint.c
+++ b/src/H5Rint.c
@@ -290,7 +290,7 @@ H5R__create(void *_ref, H5G_loc_t *loc, const char *name, H5R_type_t ref_type,
HDmemset(ref, 0, H5R_DSET_REG_REF_BUF_SIZE);
/* Get the amount of space required to serialize the selection */
- if ((buf_size = H5S_SELECT_SERIAL_SIZE(space, loc->oloc->file)) < 0)
+ if ((buf_size = H5S_SELECT_SERIAL_SIZE(space)) < 0)
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "Invalid amount of space for serializing selection")
/* Increase buffer size to allow for the dataset OID */
@@ -306,7 +306,7 @@ H5R__create(void *_ref, H5G_loc_t *loc, const char *name, H5R_type_t ref_type,
H5F_addr_encode(loc->oloc->file, &p, obj_loc.oloc->addr);
/* Serialize the selection into heap buffer */
- if (H5S_SELECT_SERIALIZE(space, &p, loc->oloc->file) < 0)
+ if (H5S_SELECT_SERIALIZE(space, &p) < 0)
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTCOPY, FAIL, "Unable to serialize selection")
/* Save the serialized buffer for later */
diff --git a/src/H5S.c b/src/H5S.c
index bd21caf..88c2f72 100644
--- a/src/H5S.c
+++ b/src/H5S.c
@@ -1604,7 +1604,7 @@ H5Sencode(hid_t obj_id, void *buf, size_t *nalloc)
if (NULL == (dspace = (H5S_t *)H5I_object_verify(obj_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
- if(H5S_encode(dspace, (unsigned char **)&buf, nalloc, H5P_FILE_ACCESS_DEFAULT)<0)
+ if(H5S_encode(dspace, (unsigned char **)&buf, nalloc)<0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTENCODE, FAIL, "can't encode dataspace")
done:
@@ -1629,7 +1629,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc, hid_t fapl_id)
+H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc)
{
H5F_t *f = NULL; /* Fake file structure*/
size_t extent_size; /* Size of serialized dataspace extent */
@@ -1640,7 +1640,7 @@ H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc, hid_t fapl_id)
FUNC_ENTER_NOAPI_NOINIT
/* Allocate "fake" file structure */
- if(NULL == (f = H5F_fake_alloc((uint8_t)0, fapl_id)))
+ if(NULL == (f = H5F_fake_alloc((uint8_t)0)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate fake file struct")
/* Find out the size of buffer needed for extent */
@@ -1648,7 +1648,7 @@ H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc, hid_t fapl_id)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADSIZE, FAIL, "can't find dataspace size")
/* Find out the size of buffer needed for selection */
- if((sselect_size = H5S_SELECT_SERIAL_SIZE(obj, f)) < 0)
+ if((sselect_size = H5S_SELECT_SERIAL_SIZE(obj)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADSIZE, FAIL, "can't find dataspace selection size")
H5_CHECKED_ASSIGN(select_size, size_t, sselect_size, hssize_t);
@@ -1678,7 +1678,7 @@ H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc, hid_t fapl_id)
/* Encode the selection part of dataspace. */
*p = pp;
- if(H5S_SELECT_SERIALIZE(obj, p, f) < 0)
+ if(H5S_SELECT_SERIALIZE(obj, p) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTENCODE, FAIL, "can't encode select space")
} /* end else */
@@ -1772,8 +1772,8 @@ H5S_decode(const unsigned char **p)
sizeof_size = *pp++;
/* Allocate "fake" file structure */
- if(NULL == (f = H5F_fake_alloc(sizeof_size, H5P_FILE_ACCESS_DEFAULT)))
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, NULL, "can't allocate fake file struct")
+ if(NULL == (f = H5F_fake_alloc(sizeof_size)))
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, NULL, "can't allocate fake file struct")
/* Decode size of extent information */
UINT32DECODE(pp, extent_size);
diff --git a/src/H5Sall.c b/src/H5Sall.c
index d933f3c..11dd8e1 100644
--- a/src/H5Sall.c
+++ b/src/H5Sall.c
@@ -36,8 +36,8 @@ static herr_t H5S__all_get_seq_list(const H5S_t *space, unsigned flags,
size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len);
static herr_t H5S__all_release(H5S_t *space);
static htri_t H5S__all_is_valid(const H5S_t *space);
-static hssize_t H5S__all_serial_size(const H5S_t *space, H5F_t *f);
-static herr_t H5S__all_serialize(const H5S_t *space, uint8_t **p, H5F_t *f);
+static hssize_t H5S__all_serial_size(const H5S_t *space);
+static herr_t H5S__all_serialize(const H5S_t *space, uint8_t **p);
static herr_t H5S__all_deserialize(H5S_t *space, uint32_t version, uint8_t flags,
const uint8_t **p);
static herr_t H5S__all_bounds(const H5S_t *space, hsize_t *start, hsize_t *end);
@@ -56,7 +56,7 @@ static herr_t H5S__all_iter_coords(const H5S_sel_iter_t *iter, hsize_t *coords);
static herr_t H5S__all_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end);
static hsize_t H5S__all_iter_nelmts(const H5S_sel_iter_t *iter);
static htri_t H5S__all_iter_has_next_block(const H5S_sel_iter_t *iter);
-static herr_t H5S__all_iter_next(H5S_sel_iter_t *sel_iter, hsize_t nelem);
+static herr_t H5S__all_iter_next(H5S_sel_iter_t *sel_iter, size_t nelem);
static herr_t H5S__all_iter_next_block(H5S_sel_iter_t *sel_iter);
static herr_t H5S__all_iter_release(H5S_sel_iter_t *sel_iter);
@@ -268,7 +268,7 @@ H5S__all_iter_has_next_block(const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
USAGE
herr_t H5S__all_iter_next(iter, nelem)
H5S_sel_iter_t *iter; IN: Pointer to selection iterator
- hsize_t nelem; IN: Number of elements to advance by
+ size_t nelem; IN: Number of elements to advance by
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -279,7 +279,7 @@ H5S__all_iter_has_next_block(const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S__all_iter_next(H5S_sel_iter_t *iter, hsize_t nelem)
+H5S__all_iter_next(H5S_sel_iter_t *iter, size_t nelem)
{
FUNC_ENTER_STATIC_NOERR
@@ -457,9 +457,8 @@ H5S__all_is_valid(const H5S_t H5_ATTR_UNUSED *space)
Determine the number of bytes needed to store the serialized "all"
selection information.
USAGE
- hssize_t H5S_all_serial_size(space, f)
+ hssize_t H5S__all_serial_size(space)
H5S_t *space; IN: Dataspace pointer to query
- H5F_t *f; IN: File pointer
RETURNS
The number of bytes required on success, negative on an error.
DESCRIPTION
@@ -471,7 +470,7 @@ H5S__all_is_valid(const H5S_t H5_ATTR_UNUSED *space)
REVISION LOG
--------------------------------------------------------------------------*/
static hssize_t
-H5S__all_serial_size (const H5S_t H5_ATTR_UNUSED *space, H5F_t H5_ATTR_UNUSED *f)
+H5S__all_serial_size(const H5S_t H5_ATTR_UNUSED *space)
{
FUNC_ENTER_STATIC_NOERR
@@ -491,12 +490,11 @@ H5S__all_serial_size (const H5S_t H5_ATTR_UNUSED *space, H5F_t H5_ATTR_UNUSED *f
PURPOSE
Serialize the current selection into a user-provided buffer.
USAGE
- herr_t H5S__all_serialize(space, p, f)
+ herr_t H5S_all_serialize(space, p)
const H5S_t *space; IN: Dataspace with selection to serialize
uint8_t **p; OUT: Pointer to buffer to put serialized
selection. Will be advanced to end of
serialized selection.
- H5F_t *f; IN: File pointer
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -508,7 +506,7 @@ H5S__all_serial_size (const H5S_t H5_ATTR_UNUSED *space, H5F_t H5_ATTR_UNUSED *f
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S__all_serialize(const H5S_t *space, uint8_t **p, H5F_t H5_ATTR_UNUSED *f)
+H5S__all_serialize(const H5S_t *space, uint8_t **p)
{
uint8_t *pp = (*p); /* Local pointer for decoding */
@@ -520,8 +518,8 @@ H5S__all_serialize(const H5S_t *space, uint8_t **p, H5F_t H5_ATTR_UNUSED *f)
HDassert(pp);
/* Store the preamble information */
- UINT32ENCODE(pp, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */
- UINT32ENCODE(pp, (uint32_t)H5S_ALL_VERSION_1); /* Store the version number */
+ UINT32ENCODE(pp, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */
+ UINT32ENCODE(pp, (uint32_t)1); /* Store the version number */
UINT32ENCODE(pp, (uint32_t)0); /* Store the un-used padding */
UINT32ENCODE(pp, (uint32_t)0); /* Store the additional information length */
diff --git a/src/H5Shyper.c b/src/H5Shyper.c
index f2050b6..47eb573 100644
--- a/src/H5Shyper.c
+++ b/src/H5Shyper.c
@@ -28,12 +28,7 @@
#include "H5Spkg.h" /* Dataspace functions */
#include "H5VMprivate.h" /* Vector functions */
-/* Format version bounds for dataspace hyperslab selection */
-const unsigned H5O_sds_hyper_ver_bounds[] = {
- H5S_HYPER_VERSION_1, /* H5F_LIBVER_EARLIEST */
- H5S_HYPER_VERSION_1, /* H5F_LIBVER_V18 */
- H5S_HYPER_VERSION_2 /* H5F_LIBVER_LATEST */
-};
+/* Local Macros */
/* Local datatypes */
@@ -85,8 +80,8 @@ static herr_t H5S__hyper_get_seq_list(const H5S_t *space, unsigned flags,
size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len);
static herr_t H5S__hyper_release(H5S_t *space);
static htri_t H5S__hyper_is_valid(const H5S_t *space);
-static hssize_t H5S__hyper_serial_size(const H5S_t *space, H5F_t *f);
-static herr_t H5S__hyper_serialize(const H5S_t *space, uint8_t **p, H5F_t *f);
+static hssize_t H5S__hyper_serial_size(const H5S_t *space);
+static herr_t H5S__hyper_serialize(const H5S_t *space, uint8_t **p);
static herr_t H5S__hyper_deserialize(H5S_t *space, uint32_t version, uint8_t flags,
const uint8_t **p);
static herr_t H5S__hyper_bounds(const H5S_t *space, hsize_t *start, hsize_t *end);
@@ -107,9 +102,10 @@ static herr_t H5S__hyper_iter_coords(const H5S_sel_iter_t *iter, hsize_t *coords
static herr_t H5S__hyper_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end);
static hsize_t H5S__hyper_iter_nelmts(const H5S_sel_iter_t *iter);
static htri_t H5S__hyper_iter_has_next_block(const H5S_sel_iter_t *sel_iter);
-static herr_t H5S__hyper_iter_next(H5S_sel_iter_t *sel_iter, hsize_t nelem);
+static herr_t H5S__hyper_iter_next(H5S_sel_iter_t *sel_iter, size_t nelem);
static herr_t H5S__hyper_iter_next_block(H5S_sel_iter_t *sel_iter);
static herr_t H5S__hyper_iter_release(H5S_sel_iter_t *sel_iter);
+
/* Static function for optimizing hyperslab */
static hbool_t H5S__hyper_rebuild_helper(const H5S_hyper_span_t *span,
H5S_hyper_dim_t span_slab_info[], unsigned rank);
@@ -688,7 +684,7 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5S__hyper_iter_next(H5S_sel_iter_t *iter, hsize_t nelem)
+H5S__hyper_iter_next(H5S_sel_iter_t *iter, size_t nelem)
{
unsigned ndims; /* Number of dimensions of dataset */
int fast_dim; /* Rank of the fastest changing dimension for the dataspace */
@@ -735,17 +731,17 @@ H5S__hyper_iter_next(H5S_sel_iter_t *iter, hsize_t nelem)
/* Loop through, advancing the offset & counts, until all the nelements are accounted for */
while(nelem > 0) {
/* Start with the fastest changing dimension */
- temp_dim=fast_dim;
- while(temp_dim>=0) {
- if(temp_dim==fast_dim) {
- hsize_t actual_elem; /* Actual # of elements advanced on each iteration through loop */
+ temp_dim = fast_dim;
+ while(temp_dim >= 0) {
+ if(temp_dim == fast_dim) {
+ size_t actual_elem; /* Actual # of elements advanced on each iteration through loop */
hsize_t block_elem; /* Number of elements left in a block */
/* Compute the number of elements left in block */
block_elem = tdiminfo[temp_dim].block - iter_offset[temp_dim];
/* Compute the number of actual elements to advance */
- actual_elem=MIN(nelem,block_elem);
+ actual_elem = (size_t)MIN(nelem, block_elem);
/* Move the iterator over as many elements as possible */
iter_offset[temp_dim] += actual_elem;
@@ -808,8 +804,8 @@ H5S__hyper_iter_next(H5S_sel_iter_t *iter, hsize_t nelem)
curr_span = ispan[curr_dim];
/* Increment absolute position */
- if(curr_dim==fast_dim) {
- hsize_t actual_elem; /* Actual # of elements advanced on each iteration through loop */
+ if(curr_dim == fast_dim) {
+ size_t actual_elem; /* Actual # of elements advanced on each iteration through loop */
hsize_t span_elem; /* Number of elements left in a span */
/* Compute the number of elements left in block */
@@ -1951,140 +1947,13 @@ done:
/*--------------------------------------------------------------------------
NAME
- H5S_hyper_set_offset_size
- PURPOSE
- Determine the offset size (4 or 8 bytes) to use for encoding hyperslab selection info
- USAGE
- hssize_t H5S_hyper_set_offset_size(space, block_count, bounds_end, version, offset_size)
- const H5S_t *space: IN: The maximum size of the hyperslab selection info
- hsize_t block_count: IN: The number of blocks in the selection
- hsize_t bounds_end: IN: The selection high bounds
- uint32_t version: IN: The version used for encoding
- uint8_t *offset_size: OUT: The offset size
-
- RETURNS
- The offset size
- DESCRIPTION
- Determine the offset size for encoding hyperslab selection info based on the
- the input parameter "version". This is for release 1.10.
- GLOBAL VARIABLES
- COMMENTS, BUGS, ASSUMPTIONS
- EXAMPLES
- REVISION LOG
---------------------------------------------------------------------------*/
-static herr_t
-H5S_hyper_set_offset_size(const H5S_t *space, hsize_t block_count, hsize_t bounds_end[], uint32_t version, uint8_t *offset_size)
-{
- herr_t ret_value = SUCCEED;
-
- FUNC_ENTER_NOAPI_NOINIT
-
- switch(version) {
- case H5S_HYPER_VERSION_1:
- *offset_size = H5S_INFO_SIZE_4;
- break;
-
- case H5S_HYPER_VERSION_2:
- *offset_size = H5S_INFO_SIZE_8;
- break;
-
- default:
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper offset size")
- break;
- }
-
-done:
- FUNC_LEAVE_NOAPI(ret_value)
-} /* H5S_hyper_set_offset_size() */
-
-
-/*--------------------------------------------------------------------------
- NAME
- H5S_hyper_set_version
- PURPOSE
- Determine the version to use for encoding hyperslab selection info
- See tables 2 & 3 in the RFC: H5Sencode/H5Sdecode Format Change
- USAGE
- hssize_t H5S_hyper_set_version(space, block_count, bounds_end, f, version)
- const H5S_t *space: IN: The dataspace
- hsize_t block_count: IN: The number of blocks in the selection
- hsize_t bounds_end: IN: The selection high bounds
- H5F_t *f: IN: The file pointer
- uint32_t *version: OUT: The version to use for encoding
-
- RETURNS
- The version to use
- DESCRIPTION
- Determine the version to use for encoding hyperslab selection info based
- on whether the number of blocks or the selection high bounds exceeds (2^32 - 1).
- GLOBAL VARIABLES
- COMMENTS, BUGS, ASSUMPTIONS
- EXAMPLES
- REVISION LOG
---------------------------------------------------------------------------*/
-static herr_t
-H5S_hyper_set_version(const H5S_t *space, hsize_t block_count, hsize_t bounds_end[], H5F_t *f, uint32_t *version)
-{
- hbool_t count_up_version = FALSE; /* Whether number of blocks exceed (2^32 - 1) */
- hbool_t bound_up_version = FALSE; /* Whether high bounds exceed (2^32 - 1) */
- unsigned u; /* Local index veriable */
- uint32_t tmp_version; /* Temporay version */
- herr_t ret_value = SUCCEED; /* return value */
-
- FUNC_ENTER_NOAPI_NOINIT
-
- /* Determine whether the number of blocks or the high bounds in the selection exceed (2^32 - 1) */
- if(block_count > H5S_UINT32_MAX)
- count_up_version = TRUE;
- else {
- for(u = 0; u < space->extent.rank; u++)
- if(bounds_end[u] > H5S_UINT32_MAX)
- bound_up_version = TRUE;
- }
-
- /* Use version 2 for unlimited selection */
- if(space->select.sel_info.hslab->unlim_dim >= 0)
- tmp_version = H5S_HYPER_VERSION_2;
- else if(H5S__hyper_is_regular(space)) {
-
- /* If exceed (2^32 -1) */
- if(count_up_version || bound_up_version)
- tmp_version = H5S_HYPER_VERSION_2;
- else
- /* block_count < 4: version 1 */
- /* block_count >= 4: determined by low bound */
- tmp_version = (block_count < 4) ? H5S_HYPER_VERSION_1 : H5O_sds_hyper_ver_bounds[H5F_LOW_BOUND(f)];
-
- } else {
- /* Fail for irregular hyperslab if exceeds 32 bits */
- if(count_up_version)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "The number of blocks in hyperslab selection exceeds 2^32")
- else if(bound_up_version)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "The end of bounding box in hyperslab selection exceeds 2^32")
- tmp_version = H5S_HYPER_VERSION_1;
- }
-
- /* Version bounds check */
- if(tmp_version > H5O_sds_hyper_ver_bounds[H5F_HIGH_BOUND(f)])
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "Dataspace hyperslab selection version out of bounds")
-
- *version = tmp_version;
-
-done:
- FUNC_LEAVE_NOAPI(ret_value)
-} /* H5S_hyper_set_version() */
-
-
-/*--------------------------------------------------------------------------
- NAME
H5S__hyper_serial_size
PURPOSE
Determine the number of bytes needed to store the serialized hyperslab
selection information.
USAGE
- hssize_t H5S_hyper_serial_size(space, H5F_t *f)
+ hssize_t H5S__hyper_serial_size(space)
H5S_t *space; IN: Dataspace pointer to query
- H5F_t *f; IN: File pointer
RETURNS
The number of bytes required on success, negative on an error.
DESCRIPTION
@@ -2096,72 +1965,51 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
static hssize_t
-H5S__hyper_serial_size(const H5S_t *space, H5F_t *f)
+H5S__hyper_serial_size(const H5S_t *space)
{
- hsize_t block_count = 0; /* block counter for regular hyperslabs */
- hsize_t bounds_start[H5S_MAX_RANK]; /* Selection bounds */
- hsize_t bounds_end[H5S_MAX_RANK]; /* Selection bounds */
- uint32_t version; /* Version number */
- uint8_t offset_size; /* Offset size */
- unsigned u; /* Local index variable */
- hssize_t ret_value = -1; /* return value */
+ hsize_t block_count; /* block counter for regular hyperslabs */
+ unsigned u; /* Counter */
+ hssize_t ret_value = -1; /* return value */
- FUNC_ENTER_NOAPI_NOINIT
+ FUNC_ENTER_STATIC_NOERR
HDassert(space);
- /* Get bounding box for the selection */
- HDmemset(bounds_end, 0, sizeof(bounds_end));
- if(space->select.sel_info.hslab->unlim_dim < 0) { /* ! H5S_UNLIMITED */
- /* Determine the number of blocks */
- if(H5S__hyper_is_regular(space)) {
- /* Check each dimension */
- for(block_count = 1, u = 0; u < space->extent.rank; u++)
- block_count *= space->select.sel_info.hslab->opt_diminfo[u].count;
- } /* end if */
- else
- /* Spin through hyperslab spans, adding 8 * rank bytes for each block */
- block_count = H5S__hyper_span_nblocks(space->select.sel_info.hslab->span_lst);
-
- /* Get bounding box for the selection */
- if(H5S__hyper_bounds(space, bounds_start, bounds_end) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds")
- }
-
- /* Determine the version */
- if(H5S_hyper_set_version(space, block_count, bounds_end, f, &version) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- /* Determine the offset size */
- if(H5S_hyper_set_offset_size(space, block_count, bounds_end, version, &offset_size) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- if(version == H5S_HYPER_VERSION_2) {
+ /* Check for version (right now, an unlimited dimension is the only thing
+ * that would bump the version) */
+ if(space->select.sel_info.hslab->unlim_dim >= 0)
/* Version 2 */
/* Size required is always:
* <type (4 bytes)> + <version (4 bytes)> + <flags (1 byte)> +
* <length (4 bytes)> + <rank (4 bytes)> +
- * (4 (start/stride/count/block) * <offset_size (8 bytes)> * <rank>) =
- * 17 + (4 * 8 * rank) bytes
+ * (4 (start/stride/count/block) * <rank> * <value (8 bytes)>) =
+ * 17 + (4 * rank * 8) bytes
*/
- HDassert(offset_size == 8);
- ret_value = (hssize_t)17 + ((hssize_t)4 * (hssize_t)8 * (hssize_t)space->extent.rank);
- } else {
- HDassert(version == H5S_HYPER_VERSION_1);
- HDassert(offset_size == 4);
+ ret_value = (hssize_t)17 + ((hssize_t)4 * (hssize_t)space->extent.rank
+ * (hssize_t)8);
+ else {
/* Version 1 */
/* Basic number of bytes required to serialize hyperslab selection:
* <type (4 bytes)> + <version (4 bytes)> + <padding (4 bytes)> +
- * <length (4 bytes)> + <rank (4 bytes)> + <# of blocks (4 bytes)> +
- * (2 (starting/ending offset) * <offset_size (4 bytes)> * <rank> * <# of blocks) =
- * = 24 bytes + (2 * 4 * rank * block_count)
+ * <length (4 bytes)> + <rank (4 bytes)> + <# of blocks (4 bytes)>
+ * = 24 bytes
*/
ret_value = 24;
+
+ /* Check for a "regular" hyperslab selection */
+ if(space->select.sel_info.hslab->diminfo_valid) {
+ /* Check each dimension */
+ for(block_count = 1, u = 0; u < space->extent.rank; u++)
+ block_count *= space->select.sel_info.hslab->opt_diminfo[u].count;
+ } /* end if */
+ else
+ /* Spin through hyperslab spans, adding 8 * rank bytes for each block */
+ block_count = H5S__hyper_span_nblocks(space->select.sel_info.hslab->span_lst);
+
H5_CHECK_OVERFLOW((8 * space->extent.rank * block_count), hsize_t, hssize_t);
- ret_value += (hssize_t)(8 * space->extent.rank * block_count);
+ ret_value += (hssize_t)(8 * block_count * space->extent.rank);
} /* end else */
-done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S__hyper_serial_size() */
@@ -2253,12 +2101,11 @@ H5S__hyper_serialize_helper(const H5S_hyper_span_info_t *spans,
PURPOSE
Serialize the current selection into a user-provided buffer.
USAGE
- herr_t H5S__hyper_serialize(space, p)
+ herr_t H5S_hyper_serialize(space, p)
const H5S_t *space; IN: Dataspace with selection to serialize
uint8_t **p; OUT: Pointer to buffer to put serialized
selection. Will be advanced to end of
serialized selection.
- H5F_t *f; IN: File pointer
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -2270,30 +2117,16 @@ H5S__hyper_serialize_helper(const H5S_hyper_span_info_t *spans,
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S__hyper_serialize(const H5S_t *space, uint8_t **p, H5F_t *f)
+H5S__hyper_serialize(const H5S_t *space, uint8_t **p)
{
- const H5S_hyper_dim_t *diminfo; /* Alias for dataspace's diminfo information */
- uint8_t *pp = (*p); /* Local pointer for decoding */
- hsize_t tmp_count[H5O_LAYOUT_NDIMS]; /* Temporary hyperslab counts */
- hsize_t offset[H5O_LAYOUT_NDIMS]; /* Offset of element in dataspace */
- hsize_t start[H5O_LAYOUT_NDIMS]; /* Location of start of hyperslab */
- hsize_t end[H5O_LAYOUT_NDIMS]; /* Location of end of hyperslab */
- hsize_t temp_off; /* Offset in a given dimension */
- uint8_t *lenp; /* pointer to length location for later storage */
- uint32_t len = 0; /* number of bytes used */
+ uint8_t *pp; /* Local pointer for decoding */
+ uint8_t *lenp; /* Pointer to length location for later storage */
+ uint32_t len = 0; /* Number of bytes used */
uint32_t version; /* Version number */
uint8_t flags = 0; /* Flags for message */
- hsize_t block_count; /* block counter for regular hyperslabs */
- unsigned fast_dim; /* Rank of the fastest changing dimension for the dataspace */
- unsigned ndims; /* Rank of the dataspace */
- unsigned u; /* Local counting variable */
- int done; /* Whether we are done with the iteration */
- uint8_t offset_size;
- hsize_t bounds_start[H5S_MAX_RANK];
- hsize_t bounds_end[H5S_MAX_RANK];
- herr_t ret_value = SUCCEED; /* return value */
+ hsize_t block_count; /* Block counter for regular hyperslabs */
- FUNC_ENTER_NOAPI_NOINIT
+ FUNC_ENTER_STATIC_NOERR
/* Sanity checks */
HDassert(space);
@@ -2301,76 +2134,62 @@ H5S__hyper_serialize(const H5S_t *space, uint8_t **p, H5F_t *f)
pp = (*p);
HDassert(pp);
- /* Set some convienence values */
- ndims = space->extent.rank;
- diminfo = space->select.sel_info.hslab->opt_diminfo;
-
- if(space->select.sel_info.hslab->unlim_dim < 0) { /* ! H5S_UNLIMITED */
- /* Calculate the # of blocks */
- if(H5S__hyper_is_regular(space)) {
- /* Check each dimension */
- for(block_count = 1, u = 0; u < ndims; u++)
- block_count *= diminfo[u].count;
- } /* end if */
- else
- /* Spin through hyperslab spans, adding 8 * rank bytes for each block */
- block_count = H5S__hyper_span_nblocks(space->select.sel_info.hslab->span_lst);
-
- /* Get bounding box */
- if(H5S__hyper_bounds(space, bounds_start, bounds_end) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds")
- }
-
- /* Determine the version to use */
- if(H5S_hyper_set_version(space, block_count, bounds_end, f, &version) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- /* Determine the size of offset info */
- if(H5S_hyper_set_offset_size(space, block_count, bounds_end, version, &offset_size) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- if(H5S__hyper_is_regular(space) && version == H5S_HYPER_VERSION_2)
- flags |= H5S_HYPER_REGULAR;
+ /* Calculate version */
+ if(space->select.sel_info.hslab->unlim_dim >= 0) {
+ version = 2;
+ flags |= H5S_SELECT_FLAG_UNLIM;
+ } /* end if */
+ else
+ version = 1;
/* Store the preamble information */
UINT32ENCODE(pp, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */
UINT32ENCODE(pp, version); /* Store the version number */
-
- if(version == 2)
- *(pp)++ = flags; /* Store the flags */
+ if(version >= 2)
+ *(pp)++ = flags; /* Store the flags */
else
UINT32ENCODE(pp, (uint32_t)0); /* Store the un-used padding */
- lenp = pp; /* keep the pointer to the length location for later */
- pp += 4; /* skip over space for length */
-
- len += 4; /* ndims */
+ lenp = pp; /* keep the pointer to the length location for later */
+ pp += 4; /* skip over space for length */
/* Encode number of dimensions */
- UINT32ENCODE(pp, (uint32_t)ndims);
+ UINT32ENCODE(pp, (uint32_t)space->extent.rank);
+ len += 4;
- /* If flags indicates a regular hyperslab or unlimited dimension, encode opt_diminfo */
- if(flags & H5S_HYPER_REGULAR) {
+ /* If there is an unlimited dimension, only encode opt_unlim_diminfo */
+ if(flags & H5S_SELECT_FLAG_UNLIM) {
unsigned i;
HDassert(H5S_UNLIMITED == HSIZE_UNDEF);
- HDassert(version == H5S_HYPER_VERSION_2);
/* Iterate over dimensions */
- /* Encode start/stride/block/count */
for(i = 0; i < space->extent.rank; i++) {
- UINT64ENCODE(pp, diminfo[i].start);
- UINT64ENCODE(pp, diminfo[i].stride);
- UINT64ENCODE(pp, diminfo[i].count);
- UINT64ENCODE(pp, diminfo[i].block);
+ /* Encode start/stride/block/count */
+ UINT64ENCODE(pp, space->select.sel_info.hslab->opt_diminfo[i].start);
+ UINT64ENCODE(pp, space->select.sel_info.hslab->opt_diminfo[i].stride);
+ UINT64ENCODE(pp, space->select.sel_info.hslab->opt_diminfo[i].count);
+ UINT64ENCODE(pp, space->select.sel_info.hslab->opt_diminfo[i].block);
} /* end for */
- len += (4 * space->extent.rank * 8);
} /* end if */
/* Check for a "regular" hyperslab selection */
- else if(H5S__hyper_is_regular(space)) {
- HDassert(version == H5S_HYPER_VERSION_1);
+ else if(space->select.sel_info.hslab->diminfo_valid) {
+ const H5S_hyper_dim_t *diminfo; /* Alias for dataspace's diminfo information */
+ hsize_t offset[H5O_LAYOUT_NDIMS]; /* Offset of element in dataspace */
+ hsize_t tmp_count[H5O_LAYOUT_NDIMS]; /* Temporary hyperslab counts */
+ unsigned fast_dim; /* Rank of the fastest changing dimension for the dataspace */
+ unsigned ndims; /* Rank of the dataspace */
+ unsigned u; /* Local counting variable */
+ hbool_t done; /* Whether we are done with the iteration */
- /* Set some convienence values */
+ /* Set some convenience values */
+ ndims = space->extent.rank;
fast_dim = ndims - 1;
+ diminfo = space->select.sel_info.hslab->opt_diminfo;
+
+ /* Check each dimension */
+ for(block_count = 1, u = 0; u < ndims; u++)
+ block_count *= diminfo[u].count;
+
/* Encode number of hyperslabs */
H5_CHECK_OVERFLOW(block_count, hsize_t, uint32_t);
UINT32ENCODE(pp, (uint32_t)block_count);
@@ -2446,16 +2265,18 @@ H5S__hyper_serialize(const H5S_t *space, uint8_t **p, H5F_t *f)
} /* end while */
} /* end if */
else {
- HDassert(version == H5S_HYPER_VERSION_1);
+ hsize_t start[H5O_LAYOUT_NDIMS]; /* Location of start of hyperslab */
+ hsize_t end[H5O_LAYOUT_NDIMS]; /* Location of end of hyperslab */
+
/* Encode number of hyperslabs */
+ block_count = H5S__hyper_span_nblocks(space->select.sel_info.hslab->span_lst);
H5_CHECK_OVERFLOW(block_count, hsize_t, uint32_t);
UINT32ENCODE(pp, (uint32_t)block_count);
-
- len+=4; /* block_count */
+ len += 4;
/* Add 8 bytes times the rank for each hyperslab selected */
- H5_CHECK_OVERFLOW((8 * ndims * block_count), hsize_t, size_t);
- len += (uint32_t)(8 * ndims * block_count);
+ H5_CHECK_OVERFLOW((8 * space->extent.rank * block_count), hsize_t, size_t);
+ len += (uint32_t)(8 * space->extent.rank * block_count);
/* Encode each hyperslab in selection */
H5S__hyper_serialize_helper(space->select.sel_info.hslab->span_lst, start, end, (hsize_t)0, &pp);
@@ -2467,9 +2288,8 @@ H5S__hyper_serialize(const H5S_t *space, uint8_t **p, H5F_t *f)
/* Update encoding pointer */
*p = pp;
-done:
- FUNC_LEAVE_NOAPI(ret_value)
-} /* H5S_hyper_serialize() */
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5S__hyper_serialize() */
/*--------------------------------------------------------------------------
@@ -2519,7 +2339,8 @@ H5S__hyper_deserialize(H5S_t *space, uint32_t H5_ATTR_UNUSED version, uint8_t fl
/* (The header and rank have already beed decoded) */
rank = space->extent.rank; /* Retrieve rank from space */
- if(flags & H5S_HYPER_REGULAR) {
+ /* If there is an unlimited dimension, only encode opt_unlim_diminfo */
+ if(flags & H5S_SELECT_FLAG_UNLIM) {
hsize_t stride[H5O_LAYOUT_NDIMS]; /* Hyperslab stride information */
hsize_t count[H5O_LAYOUT_NDIMS]; /* Hyperslab count information */
@@ -7652,7 +7473,7 @@ H5S_select_hyperslab (H5S_t *space, H5S_seloper_t op,
HGOTO_ERROR(H5E_DATASPACE, H5E_UNSUPPORTED, FAIL, "unsupported operation with unlimited selection")
/* Get bounds of existing selection */
- if(H5S__hyper_bounds(space, bounds_start, bounds_end) < 0)
+ if(H5S_hyper_bounds(space, bounds_start, bounds_end) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds")
/* Patch count and block to remove unlimited and include the
diff --git a/src/H5Snone.c b/src/H5Snone.c
index 4a7a7a3..19d0b5f 100644
--- a/src/H5Snone.c
+++ b/src/H5Snone.c
@@ -37,8 +37,8 @@ static herr_t H5S_none_get_seq_list(const H5S_t *space, unsigned flags,
size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len);
static herr_t H5S_none_release(H5S_t *space);
static htri_t H5S_none_is_valid(const H5S_t *space);
-static hssize_t H5S_none_serial_size(const H5S_t *space, H5F_t *f);
-static herr_t H5S_none_serialize(const H5S_t *space, uint8_t **p, H5F_t *f);
+static hssize_t H5S_none_serial_size(const H5S_t *space);
+static herr_t H5S_none_serialize(const H5S_t *space, uint8_t **p);
static herr_t H5S_none_deserialize(H5S_t *space, uint32_t version, uint8_t flags,
const uint8_t **p);
static herr_t H5S_none_bounds(const H5S_t *space, hsize_t *start, hsize_t *end);
@@ -57,7 +57,7 @@ static herr_t H5S_none_iter_coords(const H5S_sel_iter_t *iter, hsize_t *coords);
static herr_t H5S_none_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end);
static hsize_t H5S_none_iter_nelmts(const H5S_sel_iter_t *iter);
static htri_t H5S_none_iter_has_next_block(const H5S_sel_iter_t *iter);
-static herr_t H5S_none_iter_next(H5S_sel_iter_t *sel_iter, hsize_t nelem);
+static herr_t H5S_none_iter_next(H5S_sel_iter_t *sel_iter, size_t nelem);
static herr_t H5S_none_iter_next_block(H5S_sel_iter_t *sel_iter);
static herr_t H5S_none_iter_release(H5S_sel_iter_t *sel_iter);
@@ -251,7 +251,7 @@ H5S_none_iter_has_next_block(const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
USAGE
herr_t H5S_none_iter_next(iter, nelem)
H5S_sel_iter_t *iter; IN: Pointer to selection iterator
- hsize_t nelem; IN: Number of elements to advance by
+ size_t nelem; IN: Number of elements to advance by
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -262,7 +262,7 @@ H5S_none_iter_has_next_block(const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S_none_iter_next(H5S_sel_iter_t H5_ATTR_UNUSED *iter, hsize_t H5_ATTR_UNUSED nelem)
+H5S_none_iter_next(H5S_sel_iter_t H5_ATTR_UNUSED *iter, size_t H5_ATTR_UNUSED nelem)
{
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -433,9 +433,8 @@ H5S_none_is_valid(const H5S_t H5_ATTR_UNUSED *space)
Determine the number of bytes needed to store the serialized "none"
selection information.
USAGE
- hssize_t H5S_none_serial_size(space, f)
+ hssize_t H5S_none_serial_size(space)
H5S_t *space; IN: Dataspace pointer to query
- H5F_t *f; IN: File pointer
RETURNS
The number of bytes required on success, negative on an error.
DESCRIPTION
@@ -447,7 +446,7 @@ H5S_none_is_valid(const H5S_t H5_ATTR_UNUSED *space)
REVISION LOG
--------------------------------------------------------------------------*/
static hssize_t
-H5S_none_serial_size(const H5S_t H5_ATTR_UNUSED *space, H5F_t H5_ATTR_UNUSED *f)
+H5S_none_serial_size(const H5S_t H5_ATTR_UNUSED *space)
{
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -467,12 +466,11 @@ H5S_none_serial_size(const H5S_t H5_ATTR_UNUSED *space, H5F_t H5_ATTR_UNUSED *f)
PURPOSE
Serialize the current selection into a user-provided buffer.
USAGE
- herr_t H5S_none_serialize(space, p, f)
+ herr_t H5S_none_serialize(space, p)
const H5S_t *space; IN: Dataspace with selection to serialize
uint8_t **p; OUT: Pointer to buffer to put serialized
selection. Will be advanced to end of
serialized selection.
- H5F_t *f; IN: File pointer
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -484,7 +482,7 @@ H5S_none_serial_size(const H5S_t H5_ATTR_UNUSED *space, H5F_t H5_ATTR_UNUSED *f)
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S_none_serialize(const H5S_t *space, uint8_t **p, H5F_t H5_ATTR_UNUSED *f)
+H5S_none_serialize(const H5S_t *space, uint8_t **p)
{
uint8_t *pp = (*p); /* Local pointer for decoding */
@@ -496,8 +494,8 @@ H5S_none_serialize(const H5S_t *space, uint8_t **p, H5F_t H5_ATTR_UNUSED *f)
HDassert(pp);
/* Store the preamble information */
- UINT32ENCODE(pp, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */
- UINT32ENCODE(pp, (uint32_t)H5S_NONE_VERSION_1); /* Store the version number */
+ UINT32ENCODE(pp, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */
+ UINT32ENCODE(pp, (uint32_t)1); /* Store the version number */
UINT32ENCODE(pp, (uint32_t)0); /* Store the un-used padding */
UINT32ENCODE(pp, (uint32_t)0); /* Store the additional information length */
diff --git a/src/H5Spkg.h b/src/H5Spkg.h
index f6bd3d1..6ded287 100644
--- a/src/H5Spkg.h
+++ b/src/H5Spkg.h
@@ -33,28 +33,8 @@
#define H5S_VALID_PERM 0x02
/* Flags for serialization of selections */
-#define H5S_HYPER_REGULAR 0x01
-#define H5S_SELECT_FLAG_BITS (H5S_HYPER_REGULAR)
-
-/* Versions for H5S_SEL_HYPER selection info */
-#define H5S_HYPER_VERSION_1 1
-#define H5S_HYPER_VERSION_2 2
-
-/* Versions for H5S_SEL_POINTS selection info */
-#define H5S_POINT_VERSION_1 1
-
-/* Versions for H5S_SEL_NONE selection info */
-#define H5S_NONE_VERSION_1 1
-
-/* Versions for H5S_SEL_ALL selection info */
-#define H5S_ALL_VERSION_1 1
-
-/* Size of point/offset info for H5S_SEL_POINTS/H5S_SEL_HYPER */
-#define H5S_INFO_SIZE_4 0x04 /* 4 bytes: 32 bits */
-#define H5S_INFO_SIZE_8 0x08 /* 8 bytes: 64 bits */
-#define H5S_SELECT_INFO_SIZE_BITS (H5S_INFO_SIZE_4|H5S_INFO_SIZE_8)
-
-#define H5S_UINT32_MAX 4294967295 /* 2^32 - 1 */
+#define H5S_SELECT_FLAG_UNLIM 0x01
+#define H5S_SELECT_FLAG_BITS (H5S_SELECT_FLAG_UNLIM)
/* Length of stack-allocated sequences for "project intersect" routines */
#define H5S_PROJECT_INTERSECT_NSEQS 256
@@ -159,9 +139,9 @@ typedef herr_t (*H5S_sel_release_func_t)(H5S_t *space);
/* Method to determine if current selection is valid for dataspace */
typedef htri_t (*H5S_sel_is_valid_func_t)(const H5S_t *space);
/* Method to determine number of bytes required to store current selection */
-typedef hssize_t (*H5S_sel_serial_size_func_t)(const H5S_t *space, H5F_t *f);
+typedef hssize_t (*H5S_sel_serial_size_func_t)(const H5S_t *space);
/* Method to store current selection in "serialized" form (a byte sequence suitable for storing on disk) */
-typedef herr_t (*H5S_sel_serialize_func_t)(const H5S_t *space, uint8_t **p, H5F_t *f);
+typedef herr_t (*H5S_sel_serialize_func_t)(const H5S_t *space, uint8_t **p);
/* Method to create selection from "serialized" form (a byte sequence suitable for storing on disk) */
typedef herr_t (*H5S_sel_deserialize_func_t)(H5S_t *space, uint32_t version, uint8_t flags,
const uint8_t **p);
@@ -245,7 +225,7 @@ typedef hsize_t (*H5S_sel_iter_nelmts_func_t)(const H5S_sel_iter_t *iter);
/* Method to determine if there are more blocks left in the current selection */
typedef htri_t (*H5S_sel_iter_has_next_block_func_t)(const H5S_sel_iter_t *iter);
/* Method to move selection iterator to the next element in the selection */
-typedef herr_t (*H5S_sel_iter_next_func_t)(H5S_sel_iter_t *iter, hsize_t nelem);
+typedef herr_t (*H5S_sel_iter_next_func_t)(H5S_sel_iter_t *iter, size_t nelem);
/* Method to move selection iterator to the next block in the selection */
typedef herr_t (*H5S_sel_iter_next_block_func_t)(H5S_sel_iter_t *iter);
/* Method to release iterator for current selection */
@@ -285,9 +265,8 @@ H5_DLLVAR const H5S_select_class_t H5S_sel_none[1];
*/
H5_DLLVAR const H5S_select_class_t H5S_sel_point[1];
-/* Array of versions for Dataspace and hyperslab selections */
+/* Array of versions for Dataspace */
H5_DLLVAR const unsigned H5O_sdspace_ver_bounds[H5F_LIBVER_NBOUNDS];
-H5_DLLVAR const unsigned H5O_sds_hyper_ver_bounds[H5F_LIBVER_NBOUNDS];
/* Extent functions */
H5_DLL herr_t H5S_extent_release(H5S_extent_t *extent);
diff --git a/src/H5Spoint.c b/src/H5Spoint.c
index ab40e44..442bb2a 100644
--- a/src/H5Spoint.c
+++ b/src/H5Spoint.c
@@ -38,8 +38,8 @@ static herr_t H5S_point_get_seq_list(const H5S_t *space, unsigned flags,
size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len);
static herr_t H5S_point_release(H5S_t *space);
static htri_t H5S_point_is_valid(const H5S_t *space);
-static hssize_t H5S_point_serial_size(const H5S_t *space, H5F_t *f);
-static herr_t H5S_point_serialize(const H5S_t *space, uint8_t **p, H5F_t *f);
+static hssize_t H5S_point_serial_size(const H5S_t *space);
+static herr_t H5S_point_serialize(const H5S_t *space, uint8_t **p);
static herr_t H5S_point_deserialize(H5S_t *space, uint32_t version, uint8_t flags,
const uint8_t **p);
static herr_t H5S_point_bounds(const H5S_t *space, hsize_t *start, hsize_t *end);
@@ -58,7 +58,7 @@ static herr_t H5S_point_iter_coords(const H5S_sel_iter_t *iter, hsize_t *coords)
static herr_t H5S_point_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end);
static hsize_t H5S_point_iter_nelmts(const H5S_sel_iter_t *iter);
static htri_t H5S_point_iter_has_next_block(const H5S_sel_iter_t *iter);
-static herr_t H5S_point_iter_next(H5S_sel_iter_t *sel_iter, hsize_t nelem);
+static herr_t H5S_point_iter_next(H5S_sel_iter_t *sel_iter, size_t nelem);
static herr_t H5S_point_iter_next_block(H5S_sel_iter_t *sel_iter);
static herr_t H5S_point_iter_release(H5S_sel_iter_t *sel_iter);
@@ -278,7 +278,7 @@ done:
USAGE
herr_t H5S_point_iter_next(iter, nelem)
H5S_sel_iter_t *iter; IN: Pointer to selection iterator
- hsize_t nelem; IN: Number of elements to advance by
+ size_t nelem; IN: Number of elements to advance by
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -289,7 +289,7 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S_point_iter_next(H5S_sel_iter_t *iter, hsize_t nelem)
+H5S_point_iter_next(H5S_sel_iter_t *iter, size_t nelem)
{
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -376,7 +376,7 @@ H5S_point_iter_release (H5S_sel_iter_t H5_ATTR_UNUSED * iter)
USAGE
herr_t H5S_point_add(space, num_elem, coord)
H5S_t *space; IN: Dataspace of selection to modify
- hsize_t num_elem; IN: Number of elements in COORD array.
+ size_t num_elem; IN: Number of elements in COORD array.
const hsize_t *coord[]; IN: The location of each element selected
RETURNS
Non-negative on success/Negative on failure
@@ -388,7 +388,7 @@ H5S_point_iter_release (H5S_sel_iter_t H5_ATTR_UNUSED * iter)
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S_point_add(H5S_t *space, H5S_seloper_t op, hsize_t num_elem, const hsize_t *coord)
+H5S_point_add(H5S_t *space, H5S_seloper_t op, size_t num_elem, const hsize_t *coord)
{
H5S_pnt_node_t *top = NULL, *curr = NULL, *new_node = NULL; /* Point selection nodes */
unsigned u; /* Counter */
@@ -527,7 +527,7 @@ H5S_point_release (H5S_t *space)
herr_t H5S_select_elements(dsid, op, num_elem, coord)
hid_t dsid; IN: Dataspace ID of selection to modify
H5S_seloper_t op; IN: Operation to perform on current selection
- hsize_t num_elem; IN: Number of elements in COORD array.
+ size_t num_elem; IN: Number of elements in COORD array.
const hsize_t *coord; IN: The location of each element selected
RETURNS
Non-negative on success/Negative on failure
@@ -549,7 +549,7 @@ H5S_point_release (H5S_t *space)
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5S_select_elements(H5S_t *space, H5S_seloper_t op, hsize_t num_elem,
+H5S_select_elements(H5S_t *space, H5S_seloper_t op, size_t num_elem,
const hsize_t *coord)
{
herr_t ret_value = SUCCEED; /* return value */
@@ -752,93 +752,6 @@ done:
FUNC_LEAVE_API(ret_value)
} /* H5Sget_select_elem_npoints() */
-/*--------------------------------------------------------------------------
- NAME
- H5S_point_set_version
- PURPOSE
- Determine the version to use for encoding points selection info
- USAGE
- hssize_t H5S_point_set_version(space, bounds_end, f, version)
- const H5S_t *space; IN: The dataspace
- hsize_t bounds_end: IN: The selection high bounds
- H5F_t *f: IN: The file pointer
- uint32_t *version: OUT: The version to use for encoding
- RETURNS
- The version to use
- DESCRIPTION
- Determine the version to use for encoding points selection info:
- For 1.10, return 1
-
- GLOBAL VARIABLES
- COMMENTS, BUGS, ASSUMPTIONS
- EXAMPLES
- REVISION LOG
---------------------------------------------------------------------------*/
-static herr_t
-H5S_point_set_version(const H5S_t *space, hsize_t bounds_end[], H5F_t *f, uint32_t *version)
-{
- hbool_t exceed = FALSE;
- unsigned u;
- herr_t ret_value = SUCCEED; /* return value */
-
- FUNC_ENTER_NOAPI_NOINIT
-
- *version = H5S_POINT_VERSION_1;
-
- /* Determine whether the number of points or the high bounds in the selection exceed (2^32 - 1) */
- for(u = 0; u < space->extent.rank; u++)
- if(bounds_end[u] > H5S_UINT32_MAX) {
- exceed = TRUE;
- break;
- }
-
- if(space->select.num_elem > H5S_UINT32_MAX)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "The number of points in point selection exceeds 2^32")
- else if(exceed)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "The end of bounding box in point selection exceeds 2^32")
-
-done:
- FUNC_LEAVE_NOAPI(ret_value)
-} /* H5S_point_set_version() */
-
-
-/*--------------------------------------------------------------------------
- NAME
- H5S_point_set_info_size
- PURPOSE
- Determine the size of point info to use for encoding selection info
- USAGE
- hssize_t H5S_point_set_info_size(space, bounds_end, version, point_size)
- const H5S_t *space: IN: Dataspace ID of selection to query
- hsize_t bounds_end[]: IN: The selection high bounds
- uint32_t version: IN: The version used for encoding
- uint8_t *point_size: OUT: The size of point info
- RETURNS
- The size of the points selection info
- DESCRIPTION
- Determine the size for encoding points selection info:
- For 1.10, return 4
-
- GLOBAL VARIABLES
- COMMENTS, BUGS, ASSUMPTIONS
- EXAMPLES
- REVISION LOG
---------------------------------------------------------------------------*/
-static herr_t
-H5S_point_set_info_size(const H5S_t *space, hsize_t H5_ATTR_UNUSED bounds_end[], uint32_t H5_ATTR_UNUSED version, uint8_t H5_ATTR_UNUSED *point_size)
-{
- hsize_t max_size = 0;
- unsigned u;
-
- FUNC_ENTER_NOAPI_NOINIT_NOERR
-
- HDassert(version == H5S_POINT_VERSION_1);
-
- *point_size = H5S_INFO_SIZE_4;
-
- FUNC_LEAVE_NOAPI(SUCCEED)
-} /* H5S_point_set_info_size() */
-
/*--------------------------------------------------------------------------
NAME
@@ -847,9 +760,8 @@ H5S_point_set_info_size(const H5S_t *space, hsize_t H5_ATTR_UNUSED bounds_end[],
Determine the number of bytes needed to store the serialized point selection
information.
USAGE
- hssize_t H5S_point_serial_size(space, f)
+ hssize_t H5S_point_serial_size(space)
H5S_t *space; IN: Dataspace pointer to query
- H5F_t *f; IN: File pointer
RETURNS
The number of bytes required on success, negative on an error.
DESCRIPTION
@@ -861,54 +773,29 @@ H5S_point_set_info_size(const H5S_t *space, hsize_t H5_ATTR_UNUSED bounds_end[],
REVISION LOG
--------------------------------------------------------------------------*/
static hssize_t
-H5S_point_serial_size (const H5S_t *space, H5F_t *f)
+H5S_point_serial_size (const H5S_t *space)
{
H5S_pnt_node_t *curr; /* Point information nodes */
- hsize_t bounds_start[H5S_MAX_RANK];
- hsize_t bounds_end[H5S_MAX_RANK];
- uint32_t version; /* Version number */
- uint8_t point_size; /* Size of point info */
hssize_t ret_value = -1; /* Return value */
- FUNC_ENTER_NOAPI_NOINIT
+ FUNC_ENTER_NOAPI_NOINIT_NOERR
HDassert(space);
- /* Get bounding box for the selection */
- HDmemset(bounds_end, 0, sizeof(bounds_end));
- if(H5S_point_bounds(space, bounds_start, bounds_end) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds")
-
- /* Determine the version */
- if(H5S_point_set_version(space, bounds_end, f, &version) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- /* Determine the size of point info */
- if(H5S_point_set_info_size(space, bounds_end, version, &point_size) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- HDassert(version == H5S_POINT_VERSION_1);
- HDassert(point_size == H5S_INFO_SIZE_4);
-
- /* Basic number of bytes required to serialize point selection: */
- /*
+ /* Basic number of bytes required to serialize point selection:
* <type (4 bytes)> + <version (4 bytes)> + <padding (4 bytes)> +
- * <length (4 bytes)> + <rank (4 bytes)>
+ * <length (4 bytes)> + <rank (4 bytes)> + <# of points (4 bytes)> = 24 bytes
*/
- ret_value=20;
-
- /* <num points (depend on point_size)> */
- ret_value += point_size;
+ ret_value = 24;
/* Count points in selection */
curr=space->select.sel_info.pnt_lst->head;
while(curr!=NULL) {
- /* Add <point_size> bytes times the rank for each element selected */
- ret_value += point_size * space->extent.rank;
- curr = curr->next;
+ /* Add 4 bytes times the rank for each element selected */
+ ret_value+=4*space->extent.rank;
+ curr=curr->next;
} /* end while */
-done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_point_serial_size() */
@@ -919,12 +806,11 @@ done:
PURPOSE
Serialize the current selection into a user-provided buffer.
USAGE
- herr_t H5S_point_serialize(space, p, f)
+ herr_t H5S_point_serialize(space, p)
const H5S_t *space; IN: Dataspace with selection to serialize
uint8_t **p; OUT: Pointer to buffer to put serialized
selection. Will be advanced to end of
serialized selection.
- H5F_t *f; IN: File pointer
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -936,63 +822,41 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
-H5S_point_serialize (const H5S_t *space, uint8_t **p, H5F_t *f)
+H5S_point_serialize (const H5S_t *space, uint8_t **p)
{
H5S_pnt_node_t *curr; /* Point information nodes */
uint8_t *pp = (*p); /* Local pointer for decoding */
uint8_t *lenp; /* pointer to length location for later storage */
uint32_t len=0; /* number of bytes used */
unsigned u; /* local counting variable */
- uint32_t version; /* Version number */
- uint8_t point_size; /* Size of point info */
- hsize_t bounds_start[H5S_MAX_RANK];
- hsize_t bounds_end[H5S_MAX_RANK];
- herr_t ret_value = SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI_NOINIT
+ FUNC_ENTER_NOAPI_NOINIT_NOERR
/* Check args */
HDassert(space);
HDassert(p);
HDassert(pp);
- /* Get bounding box for the selection */
- HDmemset(bounds_end, 0, sizeof(bounds_end));
- if(H5S_point_bounds(space, bounds_start, bounds_end) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds")
-
- /* Determine the version */
- if(H5S_point_set_version(space, bounds_end, f, &version) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- /* Determine the size of point info */
- if(H5S_point_set_info_size(space, bounds_end, version, &point_size) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't determine hyper version")
-
- HDassert(point_size == H5S_INFO_SIZE_4);
- HDassert(version == H5S_POINT_VERSION_1);
-
/* Store the preamble information */
UINT32ENCODE(pp, (uint32_t)H5S_GET_SELECT_TYPE(space)); /* Store the type of selection */
- UINT32ENCODE(pp, version); /* Store the version number */
-
+ UINT32ENCODE(pp, (uint32_t)1); /* Store the version number */
UINT32ENCODE(pp, (uint32_t)0); /* Store the un-used padding */
- lenp = pp; /* Keep the pointer to the length location for later */
- pp += 4; /* Skip over space for length */
- len += 8; /* Add in advance # of bytes for num of dimensions and num elements */
+ lenp = pp; /* Keep the pointer to the length location for later */
+ pp += 4; /* Skip over space for length */
/* Encode number of dimensions */
UINT32ENCODE(pp, (uint32_t)space->extent.rank);
-
+ len+=4;
/* Encode number of elements */
UINT32ENCODE(pp, (uint32_t)space->select.num_elem);
+ len+=4;
/* Encode each point in selection */
curr=space->select.sel_info.pnt_lst->head;
while(curr!=NULL) {
/* Add 4 bytes times the rank for each element selected */
- len += 4 * space->extent.rank;
+ len+=4*space->extent.rank;
/* Encode each point */
for(u=0; u<space->extent.rank; u++)
@@ -1007,8 +871,7 @@ H5S_point_serialize (const H5S_t *space, uint8_t **p, H5F_t *f)
/* Update encoding pointer */
*p = pp;
-done:
- FUNC_LEAVE_NOAPI(ret_value)
+ FUNC_LEAVE_NOAPI(SUCCEED)
} /* H5S_point_serialize() */
@@ -1043,7 +906,7 @@ H5S_point_deserialize(H5S_t *space, uint32_t H5_ATTR_UNUSED version, uint8_t H5_
H5S_seloper_t op = H5S_SELECT_SET; /* Selection operation */
hsize_t *coord = NULL, *tcoord; /* Pointer to array of elements */
const uint8_t *pp = (*p); /* Local pointer for decoding */
- hsize_t num_elem = 0; /* Number of elements in selection */
+ size_t num_elem = 0; /* Number of elements in selection */
unsigned rank; /* Rank of points */
unsigned i, j; /* local counting variables */
herr_t ret_value = SUCCEED; /* Return value */
@@ -1757,7 +1620,7 @@ H5Sselect_elements(hid_t spaceid, H5S_seloper_t op, size_t num_elem,
HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, FAIL, "unsupported operation attempted")
/* Call the real element selection routine */
- if((ret_value = H5S_select_elements(space, op, (hsize_t)num_elem, coord)) < 0)
+ if((ret_value = H5S_select_elements(space, op, num_elem, coord)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't select elements")
done:
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h
index e46c43b..15ce75d 100644
--- a/src/H5Sprivate.h
+++ b/src/H5Sprivate.h
@@ -148,9 +148,8 @@ typedef struct H5S_sel_iter_op_t {
#define H5S_GET_SELECT_TYPE(S) ((S)->select.type->type)
#define H5S_SELECT_GET_SEQ_LIST(S,FLAGS,ITER,MAXSEQ,MAXBYTES,NSEQ,NBYTES,OFF,LEN) ((*(S)->select.type->get_seq_list)(S,FLAGS,ITER,MAXSEQ,MAXBYTES,NSEQ,NBYTES,OFF,LEN))
#define H5S_SELECT_VALID(S) ((*(S)->select.type->is_valid)(S))
-#define H5S_SELECT_RELEASE(S) ((*(S)->select.type->release)(S))
-#define H5S_SELECT_SERIAL_SIZE(S,F) ((*(S)->select.type->serial_size)(S,F))
-#define H5S_SELECT_SERIALIZE(S,BUF,F) ((*(S)->select.type->serialize)(S,BUF,F))
+#define H5S_SELECT_SERIAL_SIZE(S) ((*(S)->select.type->serial_size)(S))
+#define H5S_SELECT_SERIALIZE(S,BUF) ((*(S)->select.type->serialize)(S,BUF))
#define H5S_SELECT_BOUNDS(S,START,END) ((*(S)->select.type->bounds)(S,START,END))
#define H5S_SELECT_OFFSET(S, OFFSET) ((*(S)->select.type->offset)(S, OFFSET))
#define H5S_SELECT_IS_CONTIGUOUS(S) ((*(S)->select.type->is_contiguous)(S))
@@ -174,9 +173,8 @@ typedef struct H5S_sel_iter_op_t {
#define H5S_GET_SELECT_TYPE(S) (H5S_get_select_type(S))
#define H5S_SELECT_GET_SEQ_LIST(S,FLAGS,ITER,MAXSEQ,MAXBYTES,NSEQ,NBYTES,OFF,LEN) (H5S_select_get_seq_list(S,FLAGS,ITER,MAXSEQ,MAXBYTES,NSEQ,NBYTES,OFF,LEN))
#define H5S_SELECT_VALID(S) (H5S_select_valid(S))
-#define H5S_SELECT_RELEASE(S) (H5S_select_release(S))
-#define H5S_SELECT_SERIAL_SIZE(S,F) (H5S_select_serial_size(S,F))
-#define H5S_SELECT_SERIALIZE(S,BUF,F) (H5S_select_serialize(S,BUF,F))
+#define H5S_SELECT_SERIAL_SIZE(S) (H5S_select_serial_size(S))
+#define H5S_SELECT_SERIALIZE(S,BUF) (H5S_select_serialize(S,BUF))
#define H5S_SELECT_BOUNDS(S,START,END) (H5S_get_select_bounds(S,START,END))
#define H5S_SELECT_OFFSET(S, OFFSET) (H5S_get_select_offset(S, OFFSET))
#define H5S_SELECT_IS_CONTIGUOUS(S) (H5S_select_is_contiguous(S))
@@ -195,6 +193,7 @@ typedef struct H5S_sel_iter_op_t {
#endif /* H5S_MODULE */
/* Handle these callbacks in a special way, since they have prologs that need to be executed */
#define H5S_SELECT_COPY(DST,SRC,SHARE) (H5S_select_copy(DST,SRC,SHARE))
+#define H5S_SELECT_RELEASE(S) (H5S_select_release(S))
#define H5S_SELECT_DESERIALIZE(S,BUF) (H5S_select_deserialize(S,BUF))
@@ -220,7 +219,7 @@ H5_DLL herr_t H5S_get_validated_dataspace(hid_t space_id, const H5S_t **space/*o
H5_DLL H5S_t *H5S_create_simple(unsigned rank, const hsize_t dims[/*rank*/],
const hsize_t maxdims[/*rank*/]);
H5_DLL herr_t H5S_set_version(H5F_t *f, H5S_t *ds);
-H5_DLL herr_t H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc, hid_t fapl_id);
+H5_DLL herr_t H5S_encode(H5S_t *obj, unsigned char **p, size_t *nalloc);
H5_DLL H5S_t *H5S_decode(const unsigned char **p);
H5_DLL herr_t H5S_debug(H5F_t *f, const void *_mesg, FILE *stream, int indent,
int fwidth);
@@ -255,8 +254,8 @@ H5_DLL herr_t H5S_select_release(H5S_t *ds);
H5_DLL herr_t H5S_select_get_seq_list(const H5S_t *space, unsigned flags,
H5S_sel_iter_t *iter, size_t maxseq, size_t maxbytes,
size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len);
-H5_DLL hssize_t H5S_select_serial_size(const H5S_t *space, H5F_t *f);
-H5_DLL herr_t H5S_select_serialize(const H5S_t *space, uint8_t **p, H5F_t *f);
+H5_DLL hssize_t H5S_select_serial_size(const H5S_t *space);
+H5_DLL herr_t H5S_select_serialize(const H5S_t *space, uint8_t **p);
H5_DLL htri_t H5S_select_is_contiguous(const H5S_t *space);
H5_DLL htri_t H5S_select_is_single(const H5S_t *space);
H5_DLL htri_t H5S_select_is_regular(const H5S_t *space);
@@ -276,7 +275,7 @@ H5_DLL herr_t H5S_select_none(H5S_t *space);
/* Operations on point selections */
H5_DLL herr_t H5S_select_elements(H5S_t *space, H5S_seloper_t op,
- hsize_t num_elem, const hsize_t *coord);
+ size_t num_elem, const hsize_t *coord);
/* Operations on hyperslab selections */
H5_DLL herr_t H5S_select_hyperslab(H5S_t *space, H5S_seloper_t op, const hsize_t start[],
@@ -306,7 +305,7 @@ H5_DLL hsize_t H5S_hyper_get_first_inc_block(const H5S_t *space,
H5_DLL herr_t H5S_select_iter_init(H5S_sel_iter_t *iter, const H5S_t *space, size_t elmt_size);
H5_DLL herr_t H5S_select_iter_coords(const H5S_sel_iter_t *sel_iter, hsize_t *coords);
H5_DLL hsize_t H5S_select_iter_nelmts(const H5S_sel_iter_t *sel_iter);
-H5_DLL herr_t H5S_select_iter_next(H5S_sel_iter_t *sel_iter, hsize_t nelem);
+H5_DLL herr_t H5S_select_iter_next(H5S_sel_iter_t *sel_iter, size_t nelem);
H5_DLL herr_t H5S_select_iter_release(H5S_sel_iter_t *sel_iter);
#ifdef H5_HAVE_PARALLEL
diff --git a/src/H5Sselect.c b/src/H5Sselect.c
index 873f555..4462295 100644
--- a/src/H5Sselect.c
+++ b/src/H5Sselect.c
@@ -223,7 +223,7 @@ done:
*-------------------------------------------------------------------------
*/
hssize_t
-H5S_select_serial_size(const H5S_t *space, H5F_t *f)
+H5S_select_serial_size(const H5S_t *space)
{
hssize_t ret_value = -1; /* Return value */
@@ -232,7 +232,7 @@ H5S_select_serial_size(const H5S_t *space, H5F_t *f)
HDassert(space);
/* Call the selection type's serial_size function */
- ret_value=(*space->select.type->serial_size)(space, f);
+ ret_value=(*space->select.type->serial_size)(space);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_serial_size() */
@@ -249,7 +249,6 @@ H5S_select_serial_size(const H5S_t *space, H5F_t *f)
uint8_t **p; OUT: Pointer to buffer to put serialized
selection. Will be advanced to end of
serialized selection.
- H5F_t *f; IN: File pointer
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
@@ -264,7 +263,7 @@ H5S_select_serial_size(const H5S_t *space, H5F_t *f)
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5S_select_serialize(const H5S_t *space, uint8_t **p, H5F_t *f)
+H5S_select_serialize(const H5S_t *space, uint8_t **p)
{
herr_t ret_value=SUCCEED; /* Return value */
@@ -274,7 +273,7 @@ H5S_select_serialize(const H5S_t *space, uint8_t **p, H5F_t *f)
HDassert(p);
/* Call the selection type's serialize function */
- ret_value=(*space->select.type->serialize)(space,p,f);
+ ret_value=(*space->select.type->serialize)(space,p);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_serialize() */
@@ -1223,7 +1222,7 @@ H5S_select_iter_has_next_block(const H5S_sel_iter_t *iter)
USAGE
herr_t H5S_select_iter_next(iter, nelem)
H5S_sel_iter_t *iter; IN/OUT: Selection iterator to change
- hsize_t nelem; IN: Number of elements to advance by
+ size_t nelem; IN: Number of elements to advance by
RETURNS
Non-negative on success, negative on failure.
DESCRIPTION
@@ -1238,7 +1237,7 @@ H5S_select_iter_has_next_block(const H5S_sel_iter_t *iter)
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5S_select_iter_next(H5S_sel_iter_t *iter, hsize_t nelem)
+H5S_select_iter_next(H5S_sel_iter_t *iter, size_t nelem)
{
herr_t ret_value = FAIL; /* Return value */
diff --git a/src/H5T.c b/src/H5T.c
index f848ceb..c220890 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -2961,7 +2961,7 @@ H5T_encode(H5T_t *obj, unsigned char *buf, size_t *nalloc)
FUNC_ENTER_NOAPI_NOINIT
/* Allocate "fake" file structure */
- if(NULL == (f = H5F_fake_alloc((uint8_t)0, H5P_FILE_ACCESS_DEFAULT)))
+ if(NULL == (f = H5F_fake_alloc((uint8_t)0)))
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "can't allocate fake file struct")
/* Find out the size of buffer needed */
@@ -3016,7 +3016,7 @@ H5T_decode(size_t buf_size, const unsigned char *buf)
FUNC_ENTER_NOAPI_NOINIT
/* Allocate "fake" file structure */
- if(NULL == (f = H5F_fake_alloc((uint8_t)0, H5P_FILE_ACCESS_DEFAULT)))
+ if(NULL == (f = H5F_fake_alloc((uint8_t)0)))
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, NULL, "can't allocate fake file struct")
/* Decode the type of the information */
diff --git a/src/H5public.h b/src/H5public.h
index 5d96b2a..9157366 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -92,11 +92,11 @@ extern "C" {
/* Version numbers */
#define H5_VERS_MAJOR 1 /* For major interface/format changes */
-#define H5_VERS_MINOR 10 /* For minor interface/format changes */
-#define H5_VERS_RELEASE 3 /* For tweaks, bug-fixes, or development */
-#define H5_VERS_SUBRELEASE "snap4" /* For pre-releases like snap0 */
+#define H5_VERS_MINOR 11 /* For minor interface/format changes */
+#define H5_VERS_RELEASE 2 /* For tweaks, bug-fixes, or development */
+#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */
/* Empty string for real releases. */
-#define H5_VERS_INFO "HDF5 library version: 1.10.3-snap4" /* Full version string */
+#define H5_VERS_INFO "HDF5 library version: 1.11.2" /* Full version string */
#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \
H5_VERS_RELEASE)