diff options
author | Dana Robinson <43805+derobins@users.noreply.github.com> | 2023-08-25 20:56:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-25 20:56:50 (GMT) |
commit | 627f7c5e026a55f176d8dfcab51633cf3b704ce6 (patch) | |
tree | b8ef6ca645521104c25a7b5538259bb449d51c58 /src/H5Tvlen.c | |
parent | 3dd60d914e762c6cf7d99646bc516015229176cd (diff) | |
download | hdf5-627f7c5e026a55f176d8dfcab51633cf3b704ce6.zip hdf5-627f7c5e026a55f176d8dfcab51633cf3b704ce6.tar.gz hdf5-627f7c5e026a55f176d8dfcab51633cf3b704ce6.tar.bz2 |
Convert some H5MM calls to standard C equivalents (#2382)
* H5MM_calloc and malloc are now mapped to stdlib C calls
* H5MM_memcpy now maps directly to memcpy in release builds
* H5MM_memcpy is still implemented as a separate function that
checks for buffer overlap when H5MM_DEBUG is defined
(default w/ debug builds)
* Switches many library memcpy calls to use H5MM_memcpy
* Fixes a possible zero allocation in H5Olayout.c
Diffstat (limited to 'src/H5Tvlen.c')
-rw-r--r-- | src/H5Tvlen.c | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/src/H5Tvlen.c b/src/H5Tvlen.c index 87f0600..ac5d3c0 100644 --- a/src/H5Tvlen.c +++ b/src/H5Tvlen.c @@ -360,14 +360,11 @@ H5T__vlen_mem_seq_getlen(H5VL_object_t H5_ATTR_UNUSED *file, const void *_vl, si FUNC_ENTER_PACKAGE_NOERR - /* Check parameter */ assert(_vl); assert(len); - /* Copy to ensure correct alignment. memcpy is best here because - * it optimizes to fast code. - */ - memcpy(&vl, _vl, sizeof(hvl_t)); + /* Copy to ensure correct alignment */ + H5MM_memcpy(&vl, _vl, sizeof(hvl_t)); *len = vl.len; @@ -390,10 +387,10 @@ H5T__vlen_mem_seq_getptr(void *_vl) FUNC_ENTER_PACKAGE_NOERR - /* check parameters, return result */ assert(_vl); - /* Copy to ensure correct alignment. */ - memcpy(&vl, _vl, sizeof(hvl_t)); + + /* Copy to ensure correct alignment */ + H5MM_memcpy(&vl, _vl, sizeof(hvl_t)); FUNC_LEAVE_NOAPI(vl.p) } /* end H5T__vlen_mem_seq_getptr() */ @@ -414,11 +411,10 @@ H5T__vlen_mem_seq_isnull(const H5VL_object_t H5_ATTR_UNUSED *file, void *_vl, hb FUNC_ENTER_PACKAGE_NOERR - /* Check parameters */ assert(_vl); - /* Copy to ensure correct alignment. */ - memcpy(&vl, _vl, sizeof(hvl_t)); + /* Copy to ensure correct alignment */ + H5MM_memcpy(&vl, _vl, sizeof(hvl_t)); *isnull = ((vl.len == 0 || vl.p == NULL) ? TRUE : FALSE); @@ -470,11 +466,11 @@ H5T__vlen_mem_seq_read(H5VL_object_t H5_ATTR_UNUSED *file, void *_vl, void *buf, FUNC_ENTER_PACKAGE_NOERR - /* check parameters, copy data */ assert(buf); assert(_vl); - /* Copy to ensure correct alignment. */ - memcpy(&vl, _vl, sizeof(hvl_t)); + + /* Copy to ensure correct alignment */ + H5MM_memcpy(&vl, _vl, sizeof(hvl_t)); assert(vl.p); H5MM_memcpy(buf, vl.p, len); @@ -549,11 +545,10 @@ H5T__vlen_mem_str_getlen(H5VL_object_t H5_ATTR_UNUSED *file, const void *_vl, si FUNC_ENTER_PACKAGE_NOERR - /* check parameters */ assert(_vl); - /* Copy to ensure correct alignment. */ - memcpy(&s, _vl, sizeof(char *)); + /* Copy to ensure correct alignment */ + H5MM_memcpy(&s, _vl, sizeof(char *)); *len = HDstrlen(s); @@ -576,10 +571,10 @@ H5T__vlen_mem_str_getptr(void *_vl) FUNC_ENTER_PACKAGE_NOERR - /* check parameters */ assert(_vl); - /* Copy to ensure correct alignment. */ - memcpy(&s, _vl, sizeof(char *)); + + /* Copy to ensure correct alignment */ + H5MM_memcpy(&s, _vl, sizeof(char *)); FUNC_LEAVE_NOAPI(s) } /* end H5T__vlen_mem_str_getptr() */ @@ -600,8 +595,8 @@ H5T__vlen_mem_str_isnull(const H5VL_object_t H5_ATTR_UNUSED *file, void *_vl, hb FUNC_ENTER_PACKAGE_NOERR - /* Copy to ensure correct alignment. */ - memcpy(&s, _vl, sizeof(char *)); + /* Copy to ensure correct alignment */ + H5MM_memcpy(&s, _vl, sizeof(char *)); *isnull = (s == NULL ? TRUE : FALSE); @@ -647,14 +642,13 @@ H5T__vlen_mem_str_read(H5VL_object_t H5_ATTR_UNUSED *file, void *_vl, void *buf, FUNC_ENTER_PACKAGE_NOERR if (len > 0) { - /* check parameters */ assert(buf); assert(_vl); - /* Copy to ensure correct alignment. */ - memcpy(&s, _vl, sizeof(char *)); + /* Copy to ensure correct alignment */ + H5MM_memcpy(&s, _vl, sizeof(char *)); H5MM_memcpy(buf, s, len); - } /* end if */ + } FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5T__vlen_mem_str_read() */ |