summaryrefslogtreecommitdiffstats
path: root/src/H5Tvlen.c
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2023-08-25 20:56:50 (GMT)
committerGitHub <noreply@github.com>2023-08-25 20:56:50 (GMT)
commit627f7c5e026a55f176d8dfcab51633cf3b704ce6 (patch)
treeb8ef6ca645521104c25a7b5538259bb449d51c58 /src/H5Tvlen.c
parent3dd60d914e762c6cf7d99646bc516015229176cd (diff)
downloadhdf5-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.c46
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() */