diff options
author | Richard Warren <Richard.Warren@hdfgroup.org> | 2019-12-06 21:42:36 (GMT) |
---|---|---|
committer | Richard Warren <Richard.Warren@hdfgroup.org> | 2019-12-06 21:42:36 (GMT) |
commit | 0c06cfc6ef9d851908f1017881598628ddf70b2a (patch) | |
tree | 0046503ba9371adcf6ad33a307d6e6827e52d88a /src/H5Dchunk.c | |
parent | 9d24eefaf71bae79ab3e483a608ddb8deff17b39 (diff) | |
download | hdf5-0c06cfc6ef9d851908f1017881598628ddf70b2a.zip hdf5-0c06cfc6ef9d851908f1017881598628ddf70b2a.tar.gz hdf5-0c06cfc6ef9d851908f1017881598628ddf70b2a.tar.bz2 |
Merged HDFFV-10929_2GB_testing to hdf5_1_12
Diffstat (limited to 'src/H5Dchunk.c')
-rw-r--r-- | src/H5Dchunk.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 53ca7d1..4166457 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -284,7 +284,8 @@ static int H5D__chunk_format_convert_cb(const H5D_chunk_rec_t *chunk_rec, void * static herr_t H5D__chunk_set_info_real(H5O_layout_chunk_t *layout, unsigned ndims, const hsize_t *curr_dims, const hsize_t *max_dims); static void *H5D__chunk_mem_alloc(size_t size, const H5O_pline_t *pline); -static void *H5D__chunk_mem_xfree(void *chk, const void *pline); +static void *H5D__chunk_mem_xfree(void *chk, void *pline); +static void H5D__chunk_mem_xfree_wrapper(void *chk, void *pline); static void *H5D__chunk_mem_realloc(void *chk, size_t size, const H5O_pline_t *pline); static herr_t H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last); @@ -1103,11 +1104,8 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf H5S_t *tmp_mspace = NULL; /* Temporary memory dataspace */ hssize_t old_offset[H5O_LAYOUT_NDIMS]; /* Old selection offset */ htri_t file_space_normalized = FALSE; /* File dataspace was normalized */ - H5T_t *file_type = NULL; /* Temporary copy of file datatype for iteration */ - hbool_t iter_init = FALSE; /* Selection iteration info has been initialized */ unsigned f_ndims; /* The number of dimensions of the file's dataspace */ int sm_ndims; /* The number of dimensions of the memory buffer's dataspace (signed) */ - char bogus; /* "bogus" buffer to pass to selection iterator */ unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ @@ -1431,7 +1429,7 @@ H5D__chunk_mem_alloc(size_t size, const H5O_pline_t *pline) *------------------------------------------------------------------------- */ static void * -H5D__chunk_mem_xfree(void *chk, const void *_pline) +H5D__chunk_mem_xfree(void *chk, void *_pline) { const H5O_pline_t *pline = (const H5O_pline_t *)_pline; @@ -1447,6 +1445,17 @@ H5D__chunk_mem_xfree(void *chk, const void *_pline) FUNC_LEAVE_NOAPI(NULL) } /* H5D__chunk_mem_xfree() */ +/* H5D__chunk_mem_xfree_wrapper() safely adapts the type of + * H5D__chunk_mem_xfree() to an H5MM_free_t callback, without making + * compilers warn. It is used with H5D__chunk_mem_xfree_wrapper(), for + * example. + */ +static void +H5D__chunk_mem_xfree_wrapper(void *chk, void *_pline) +{ + (void)H5D__chunk_mem_xfree(chk, _pline); +} + /*------------------------------------------------------------------------- * Function: H5D__chunk_mem_realloc @@ -4451,7 +4460,7 @@ H5D__chunk_allocate(const H5D_io_info_t *io_info, hbool_t full_overwrite, hsize_ /* (delay allocating fill buffer for VL datatypes until refilling) */ /* (casting away const OK - QAK) */ if(H5D__fill_init(&fb_info, NULL, (H5MM_allocate_t)H5D__chunk_mem_alloc, - (void *)pline, (H5MM_free_t)H5D__chunk_mem_xfree, (void *)pline, + (void *)pline, H5D__chunk_mem_xfree_wrapper, (void *)pline, &dset->shared->dcpl_cache.fill, dset->shared->type, dset->shared->type_id, (size_t)0, orig_chunk_size) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize fill buffer info") @@ -6279,7 +6288,7 @@ H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src, /* create variable-length datatype at the destinaton file */ if(NULL == (dt_dst = H5T_copy(dt_src, H5T_COPY_TRANSIENT))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy") - if(H5T_set_loc(dt_dst, f_dst, H5T_LOC_DISK) < 0) { + if(H5T_set_loc(dt_dst, H5F_VOL_OBJ(f_dst), H5T_LOC_DISK) < 0) { (void)H5T_close_real(dt_dst); HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "cannot mark datatype on disk") } /* end if */ @@ -7153,7 +7162,6 @@ H5D__get_num_chunks(const H5D_t *dset, const H5S_t H5_ATTR_UNUSED *space, hsize_ hsize_t num_chunks = 0; /* Number of written chunks */ H5D_rdcc_ent_t *ent; /* Cache entry */ const H5D_rdcc_t *rdcc = NULL; /* Raw data chunk cache */ - const H5O_layout_t *layout; /* Dataset layout */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE_TAG(dset->oloc.addr) @@ -7163,7 +7171,6 @@ H5D__get_num_chunks(const H5D_t *dset, const H5S_t H5_ATTR_UNUSED *space, hsize_ HDassert(space); HDassert(nchunks); - layout = &(dset->shared->layout); /* Dataset layout */ rdcc = &(dset->shared->cache.chunk); /* raw data chunk cache */ HDassert(rdcc); |