diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 15:29:53 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 15:29:53 (GMT) |
commit | ec8ad09125032c9c232878d02e90aa86df162841 (patch) | |
tree | 5d63105d3a0db7d5bbee41c5b74b097649a2115e /src/H5Tvlen.c | |
parent | 453238e90e1574ef1c15e3c79f7fb3d77920e77c (diff) | |
download | hdf5-ec8ad09125032c9c232878d02e90aa86df162841.zip hdf5-ec8ad09125032c9c232878d02e90aa86df162841.tar.gz hdf5-ec8ad09125032c9c232878d02e90aa86df162841.tar.bz2 |
Source formatted
Diffstat (limited to 'src/H5Tvlen.c')
-rw-r--r-- | src/H5Tvlen.c | 400 |
1 files changed, 189 insertions, 211 deletions
diff --git a/src/H5Tvlen.c b/src/H5Tvlen.c index b1cb336..0f5593a 100644 --- a/src/H5Tvlen.c +++ b/src/H5Tvlen.c @@ -20,85 +20,79 @@ /* Module Setup */ /****************/ -#include "H5Tmodule.h" /* This source code file is part of the H5T module */ +#include "H5Tmodule.h" /* This source code file is part of the H5T module */ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5CXprivate.h" /* API Contexts */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5HGprivate.h" /* Global Heaps */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5Tpkg.h" /* Datatypes */ - +#include "H5private.h" /* Generic Functions */ +#include "H5CXprivate.h" /* API Contexts */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5HGprivate.h" /* Global Heaps */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Tpkg.h" /* Datatypes */ /****************/ /* Local Macros */ /****************/ - /******************/ /* Local Typedefs */ /******************/ - /********************/ /* Package Typedefs */ /********************/ - /********************/ /* Local Prototypes */ /********************/ /* Memory-based VL sequence callbacks */ -static herr_t H5T_vlen_reclaim_recurse(void *elem, const H5T_t *dt, H5MM_free_t free_func, void *free_info); +static herr_t H5T_vlen_reclaim_recurse(void *elem, const H5T_t *dt, H5MM_free_t free_func, void *free_info); static ssize_t H5T_vlen_seq_mem_getlen(const void *_vl); -static void * H5T_vlen_seq_mem_getptr(void *_vl); -static htri_t H5T_vlen_seq_mem_isnull(const H5F_t *f, void *_vl); -static herr_t H5T_vlen_seq_mem_read(H5F_t *f, void *_vl, void *_buf, size_t len); -static herr_t H5T_vlen_seq_mem_write(H5F_t *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *_buf, void *_bg, size_t seq_len, size_t base_size); -static herr_t H5T_vlen_seq_mem_setnull(H5F_t *f, void *_vl, void *_bg); +static void * H5T_vlen_seq_mem_getptr(void *_vl); +static htri_t H5T_vlen_seq_mem_isnull(const H5F_t *f, void *_vl); +static herr_t H5T_vlen_seq_mem_read(H5F_t *f, void *_vl, void *_buf, size_t len); +static herr_t H5T_vlen_seq_mem_write(H5F_t *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, + void *_buf, void *_bg, size_t seq_len, size_t base_size); +static herr_t H5T_vlen_seq_mem_setnull(H5F_t *f, void *_vl, void *_bg); /* Memory-based VL string callbacks */ static ssize_t H5T_vlen_str_mem_getlen(const void *_vl); -static void * H5T_vlen_str_mem_getptr(void *_vl); -static htri_t H5T_vlen_str_mem_isnull(const H5F_t *f, void *_vl); -static herr_t H5T_vlen_str_mem_read(H5F_t *f, void *_vl, void *_buf, size_t len); -static herr_t H5T_vlen_str_mem_write(H5F_t *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *_buf, void *_bg, size_t seq_len, size_t base_size); -static herr_t H5T_vlen_str_mem_setnull(H5F_t *f, void *_vl, void *_bg); +static void * H5T_vlen_str_mem_getptr(void *_vl); +static htri_t H5T_vlen_str_mem_isnull(const H5F_t *f, void *_vl); +static herr_t H5T_vlen_str_mem_read(H5F_t *f, void *_vl, void *_buf, size_t len); +static herr_t H5T_vlen_str_mem_write(H5F_t *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, + void *_buf, void *_bg, size_t seq_len, size_t base_size); +static herr_t H5T_vlen_str_mem_setnull(H5F_t *f, void *_vl, void *_bg); /* Disk-based VL sequence (and string) callbacks */ static ssize_t H5T_vlen_disk_getlen(const void *_vl); -static void * H5T_vlen_disk_getptr(void *_vl); -static htri_t H5T_vlen_disk_isnull(const H5F_t *f, void *_vl); -static herr_t H5T_vlen_disk_read(H5F_t *f, void *_vl, void *_buf, size_t len); -static herr_t H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *_buf, void *_bg, size_t seq_len, size_t base_size); +static void * H5T_vlen_disk_getptr(void *_vl); +static htri_t H5T_vlen_disk_isnull(const H5F_t *f, void *_vl); +static herr_t H5T_vlen_disk_read(H5F_t *f, void *_vl, void *_buf, size_t len); +static herr_t H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *_buf, + void *_bg, size_t seq_len, size_t base_size); static herr_t H5T_vlen_disk_setnull(H5F_t *f, void *_vl, void *_bg); /*********************/ /* Public Variables */ /*********************/ - /*********************/ /* Package Variables */ /*********************/ - /*****************************/ /* Library Private Variables */ /*****************************/ - /*******************/ /* Local Variables */ /*******************/ - - /*------------------------------------------------------------------------- * Function: H5Tvlen_create * @@ -117,30 +111,29 @@ static herr_t H5T_vlen_disk_setnull(H5F_t *f, void *_vl, void *_bg); hid_t H5Tvlen_create(hid_t base_id) { - H5T_t *base = NULL; /*base datatype */ - H5T_t *dt = NULL; /*new datatype */ - hid_t ret_value; /*return value */ + H5T_t *base = NULL; /*base datatype */ + H5T_t *dt = NULL; /*new datatype */ + hid_t ret_value; /*return value */ FUNC_ENTER_API(FAIL) H5TRACE1("i", "i", base_id); /* Check args */ - if(NULL == (base = (H5T_t *)H5I_object_verify(base_id, H5I_DATATYPE))) + if (NULL == (base = (H5T_t *)H5I_object_verify(base_id, H5I_DATATYPE))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an valid base datatype") /* Create up VL datatype */ - if((dt = H5T__vlen_create(base)) == NULL) + if ((dt = H5T__vlen_create(base)) == NULL) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "invalid VL location") /* Atomize the type */ - if((ret_value = H5I_register(H5I_DATATYPE, dt, TRUE)) < 0) + if ((ret_value = H5I_register(H5I_DATATYPE, dt, TRUE)) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable to register datatype") done: FUNC_LEAVE_API(ret_value) } /* end H5Tvlen_create() */ - /*------------------------------------------------------------------------- * Function: H5T__vlen_create * @@ -159,8 +152,8 @@ done: H5T_t * H5T__vlen_create(const H5T_t *base) { - H5T_t *dt = NULL; /* New VL datatype */ - H5T_t *ret_value = NULL; /* Return value */ + H5T_t *dt = NULL; /* New VL datatype */ + H5T_t *ret_value = NULL; /* Return value */ FUNC_ENTER_PACKAGE @@ -168,7 +161,7 @@ H5T__vlen_create(const H5T_t *base) HDassert(base); /* Build new type */ - if(NULL == (dt = H5T__alloc())) + if (NULL == (dt = H5T__alloc())) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, NULL, "memory allocation failed") dt->shared->type = H5T_VLEN; @@ -177,7 +170,7 @@ H5T__vlen_create(const H5T_t *base) * data, not point to the same VL sequences) */ dt->shared->force_conv = TRUE; - if(NULL == (dt->shared->parent = H5T_copy(base, H5T_COPY_ALL))) + if (NULL == (dt->shared->parent = H5T_copy(base, H5T_COPY_ALL))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCOPY, NULL, "can't copy base datatype") /* Inherit encoding version from base type */ @@ -187,21 +180,20 @@ H5T__vlen_create(const H5T_t *base) dt->shared->u.vlen.type = H5T_VLEN_SEQUENCE; /* Set up VL information */ - if(H5T_set_loc(dt, NULL, H5T_LOC_MEMORY) < 0) + if (H5T_set_loc(dt, NULL, H5T_LOC_MEMORY) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "invalid datatype location") /* Set return value */ ret_value = dt; done: - if(!ret_value) - if(dt && H5T_close_real(dt) < 0) + if (!ret_value) + if (dt && H5T_close_real(dt) < 0) HDONE_ERROR(H5E_DATATYPE, H5E_CANTRELEASE, NULL, "unable to release datatype info") FUNC_LEAVE_NOAPI(ret_value) } /* end H5T__vlen_create() */ - /*------------------------------------------------------------------------- * Function: H5T__vlen_set_loc * @@ -221,7 +213,7 @@ done: htri_t H5T__vlen_set_loc(const H5T_t *dt, H5F_t *f, H5T_loc_t loc) { - htri_t ret_value = FALSE; /* Indicate success, but no location change */ + htri_t ret_value = FALSE; /* Indicate success, but no location change */ FUNC_ENTER_PACKAGE @@ -230,36 +222,36 @@ H5T__vlen_set_loc(const H5T_t *dt, H5F_t *f, H5T_loc_t loc) HDassert(loc >= H5T_LOC_BADLOC && loc < H5T_LOC_MAXLOC); /* Only change the location if it's different */ - if(loc != dt->shared->u.vlen.loc || f != dt->shared->u.vlen.f) { - switch(loc) { - case H5T_LOC_MEMORY: /* Memory based VL datatype */ + if (loc != dt->shared->u.vlen.loc || f != dt->shared->u.vlen.f) { + switch (loc) { + case H5T_LOC_MEMORY: /* Memory based VL datatype */ HDassert(NULL == f); /* Mark this type as being stored in memory */ dt->shared->u.vlen.loc = H5T_LOC_MEMORY; - if(dt->shared->u.vlen.type == H5T_VLEN_SEQUENCE) { + if (dt->shared->u.vlen.type == H5T_VLEN_SEQUENCE) { /* Size in memory, disk size is different */ dt->shared->size = sizeof(hvl_t); /* Set up the function pointers to access the VL sequence in memory */ - dt->shared->u.vlen.getlen = H5T_vlen_seq_mem_getlen; - dt->shared->u.vlen.getptr = H5T_vlen_seq_mem_getptr; - dt->shared->u.vlen.isnull = H5T_vlen_seq_mem_isnull; - dt->shared->u.vlen.read = H5T_vlen_seq_mem_read; - dt->shared->u.vlen.write = H5T_vlen_seq_mem_write; + dt->shared->u.vlen.getlen = H5T_vlen_seq_mem_getlen; + dt->shared->u.vlen.getptr = H5T_vlen_seq_mem_getptr; + dt->shared->u.vlen.isnull = H5T_vlen_seq_mem_isnull; + dt->shared->u.vlen.read = H5T_vlen_seq_mem_read; + dt->shared->u.vlen.write = H5T_vlen_seq_mem_write; dt->shared->u.vlen.setnull = H5T_vlen_seq_mem_setnull; } /* end if */ - else if(dt->shared->u.vlen.type == H5T_VLEN_STRING) { + else if (dt->shared->u.vlen.type == H5T_VLEN_STRING) { /* Size in memory, disk size is different */ dt->shared->size = sizeof(char *); /* Set up the function pointers to access the VL string in memory */ - dt->shared->u.vlen.getlen = H5T_vlen_str_mem_getlen; - dt->shared->u.vlen.getptr = H5T_vlen_str_mem_getptr; - dt->shared->u.vlen.isnull = H5T_vlen_str_mem_isnull; - dt->shared->u.vlen.read = H5T_vlen_str_mem_read; - dt->shared->u.vlen.write = H5T_vlen_str_mem_write; + dt->shared->u.vlen.getlen = H5T_vlen_str_mem_getlen; + dt->shared->u.vlen.getptr = H5T_vlen_str_mem_getptr; + dt->shared->u.vlen.isnull = H5T_vlen_str_mem_isnull; + dt->shared->u.vlen.read = H5T_vlen_str_mem_read; + dt->shared->u.vlen.write = H5T_vlen_str_mem_write; dt->shared->u.vlen.setnull = H5T_vlen_str_mem_setnull; } /* end else-if */ else @@ -269,7 +261,7 @@ H5T__vlen_set_loc(const H5T_t *dt, H5F_t *f, H5T_loc_t loc) dt->shared->u.vlen.f = NULL; break; - case H5T_LOC_DISK: /* Disk based VL datatype */ + case H5T_LOC_DISK: /* Disk based VL datatype */ HDassert(f); /* Mark this type as being stored on disk */ @@ -284,11 +276,11 @@ H5T__vlen_set_loc(const H5T_t *dt, H5F_t *f, H5T_loc_t loc) /* Set up the function pointers to access the VL information on disk */ /* VL sequences and VL strings are stored identically on disk, so use the same functions */ - dt->shared->u.vlen.getlen = H5T_vlen_disk_getlen; - dt->shared->u.vlen.getptr = H5T_vlen_disk_getptr; - dt->shared->u.vlen.isnull = H5T_vlen_disk_isnull; - dt->shared->u.vlen.read = H5T_vlen_disk_read; - dt->shared->u.vlen.write = H5T_vlen_disk_write; + dt->shared->u.vlen.getlen = H5T_vlen_disk_getlen; + dt->shared->u.vlen.getptr = H5T_vlen_disk_getptr; + dt->shared->u.vlen.isnull = H5T_vlen_disk_isnull; + dt->shared->u.vlen.read = H5T_vlen_disk_read; + dt->shared->u.vlen.write = H5T_vlen_disk_write; dt->shared->u.vlen.setnull = H5T_vlen_disk_setnull; /* Set file ID (since this VL is on disk) */ @@ -315,7 +307,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5T__vlen_set_loc() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_seq_mem_getlen * @@ -332,9 +323,9 @@ static ssize_t H5T_vlen_seq_mem_getlen(const void *_vl) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - const hvl_t *vl=(const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ + const hvl_t *vl = (const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ #else - hvl_t vl; /* User's hvl_t information */ + hvl_t vl; /* User's hvl_t information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -350,9 +341,8 @@ H5T_vlen_seq_mem_getlen(const void *_vl) FUNC_LEAVE_NOAPI((ssize_t)vl.len) #endif -} /* end H5T_vlen_seq_mem_getlen() */ +} /* end H5T_vlen_seq_mem_getlen() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_seq_mem_getptr * @@ -369,9 +359,9 @@ static void * H5T_vlen_seq_mem_getptr(void *_vl) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - const hvl_t *vl=(const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ + const hvl_t *vl = (const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ #else - hvl_t vl; /* User's hvl_t information */ + hvl_t vl; /* User's hvl_t information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -387,9 +377,8 @@ H5T_vlen_seq_mem_getptr(void *_vl) FUNC_LEAVE_NOAPI(vl.p) #endif -} /* end H5T_vlen_seq_mem_getptr() */ +} /* end H5T_vlen_seq_mem_getptr() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_seq_mem_isnull * @@ -406,9 +395,9 @@ static htri_t H5T_vlen_seq_mem_isnull(const H5F_t H5_ATTR_UNUSED *f, void *_vl) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - const hvl_t *vl=(const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ + const hvl_t *vl = (const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ #else - hvl_t vl; /* User's hvl_t information */ + hvl_t vl; /* User's hvl_t information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -417,16 +406,15 @@ H5T_vlen_seq_mem_isnull(const H5F_t H5_ATTR_UNUSED *f, void *_vl) #ifdef H5_NO_ALIGNMENT_RESTRICTIONS HDassert(vl); - FUNC_LEAVE_NOAPI((vl->len==0 || vl->p==NULL) ? TRUE : FALSE) + FUNC_LEAVE_NOAPI((vl->len == 0 || vl->p == NULL) ? TRUE : FALSE) #else HDassert(_vl); H5MM_memcpy(&vl, _vl, sizeof(hvl_t)); - FUNC_LEAVE_NOAPI((vl.len==0 || vl.p==NULL) ? TRUE : FALSE) + FUNC_LEAVE_NOAPI((vl.len == 0 || vl.p == NULL) ? TRUE : FALSE) #endif } /* end H5T_vlen_seq_mem_isnull() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_seq_mem_read * @@ -443,9 +431,9 @@ static herr_t H5T_vlen_seq_mem_read(H5F_t H5_ATTR_UNUSED *f, void *_vl, void *buf, size_t len) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - const hvl_t *vl = (const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ + const hvl_t *vl = (const hvl_t *)_vl; /* Pointer to the user's hvl_t information */ #else - hvl_t vl; /* User's hvl_t information */ + hvl_t vl; /* User's hvl_t information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -467,7 +455,6 @@ H5T_vlen_seq_mem_read(H5F_t H5_ATTR_UNUSED *f, void *_vl, void *buf, size_t len) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5T_vlen_seq_mem_read() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_seq_mem_write * @@ -481,10 +468,11 @@ H5T_vlen_seq_mem_read(H5F_t H5_ATTR_UNUSED *f, void *_vl, void *buf, size_t len) *------------------------------------------------------------------------- */ static herr_t -H5T_vlen_seq_mem_write(H5F_t H5_ATTR_UNUSED *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void H5_ATTR_UNUSED *_bg, size_t seq_len, size_t base_size) +H5T_vlen_seq_mem_write(H5F_t H5_ATTR_UNUSED *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, + void *buf, void H5_ATTR_UNUSED *_bg, size_t seq_len, size_t base_size) { - hvl_t vl; /* Temporary hvl_t to use during operation */ - herr_t ret_value = SUCCEED; /* Return value */ + hvl_t vl; /* Temporary hvl_t to use during operation */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -492,17 +480,18 @@ H5T_vlen_seq_mem_write(H5F_t H5_ATTR_UNUSED *f, const H5T_vlen_alloc_info_t *vl_ HDassert(_vl); HDassert(buf); - if(seq_len) { - size_t len = seq_len * base_size; /* Sequence size */ + if (seq_len) { + size_t len = seq_len * base_size; /* Sequence size */ /* Use the user's memory allocation routine is one is defined */ - if(vl_alloc_info->alloc_func != NULL) { - if(NULL == (vl.p = (vl_alloc_info->alloc_func)(len, vl_alloc_info->alloc_info))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "application memory allocation routine failed for VL data") - } /* end if */ - else /* Default to system malloc */ - if(NULL == (vl.p = HDmalloc(len))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "memory allocation failed for VL data") + if (vl_alloc_info->alloc_func != NULL) { + if (NULL == (vl.p = (vl_alloc_info->alloc_func)(len, vl_alloc_info->alloc_info))) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, + "application memory allocation routine failed for VL data") + } /* end if */ + else /* Default to system malloc */ + if (NULL == (vl.p = HDmalloc(len))) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "memory allocation failed for VL data") /* Copy the data into the newly allocated buffer */ H5MM_memcpy(vl.p, buf, len); @@ -520,7 +509,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5T_vlen_seq_mem_write() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_seq_mem_setnull * @@ -536,7 +524,7 @@ done: static herr_t H5T_vlen_seq_mem_setnull(H5F_t H5_ATTR_UNUSED *f, void *_vl, void H5_ATTR_UNUSED *_bg) { - hvl_t vl; /* Temporary hvl_t to use during operation */ + hvl_t vl; /* Temporary hvl_t to use during operation */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -545,7 +533,7 @@ H5T_vlen_seq_mem_setnull(H5F_t H5_ATTR_UNUSED *f, void *_vl, void H5_ATTR_UNUSED /* Set the "nil" hvl_t */ vl.len = 0; - vl.p = NULL; + vl.p = NULL; /* Set pointer in user's buffer with memcpy, to avoid alignment issues */ H5MM_memcpy(_vl, &vl, sizeof(hvl_t)); @@ -553,7 +541,6 @@ H5T_vlen_seq_mem_setnull(H5F_t H5_ATTR_UNUSED *f, void *_vl, void H5_ATTR_UNUSED FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5T_vlen_seq_mem_setnull() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_str_mem_getlen * @@ -570,9 +557,9 @@ static ssize_t H5T_vlen_str_mem_getlen(const void *_vl) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - const char *s = *(const char * const *)_vl; /* Pointer to the user's string information */ + const char *s = *(const char *const *)_vl; /* Pointer to the user's string information */ #else - const char *s; /* Pointer to the user's string information */ + const char *s; /* Pointer to the user's string information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -588,7 +575,6 @@ H5T_vlen_str_mem_getlen(const void *_vl) FUNC_LEAVE_NOAPI((ssize_t)HDstrlen(s)) } /* end H5T_vlen_str_mem_getlen() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_str_mem_getptr * @@ -605,9 +591,9 @@ static void * H5T_vlen_str_mem_getptr(void *_vl) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - char *s=*(char **)_vl; /* Pointer to the user's string information */ + char *s = *(char **)_vl; /* Pointer to the user's string information */ #else - char *s; /* Pointer to the user's string information */ + char *s; /* Pointer to the user's string information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -623,7 +609,6 @@ H5T_vlen_str_mem_getptr(void *_vl) FUNC_LEAVE_NOAPI(s) } /* end H5T_vlen_str_mem_getptr() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_str_mem_isnull * @@ -640,9 +625,9 @@ static htri_t H5T_vlen_str_mem_isnull(const H5F_t H5_ATTR_UNUSED *f, void *_vl) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - char *s=*(char **)_vl; /* Pointer to the user's string information */ + char *s = *(char **)_vl; /* Pointer to the user's string information */ #else - char *s; /* Pointer to the user's string information */ + char *s; /* Pointer to the user's string information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -651,10 +636,9 @@ H5T_vlen_str_mem_isnull(const H5F_t H5_ATTR_UNUSED *f, void *_vl) H5MM_memcpy(&s, _vl, sizeof(char *)); #endif - FUNC_LEAVE_NOAPI(s==NULL ? TRUE : FALSE) -} /* end H5T_vlen_str_mem_isnull() */ + FUNC_LEAVE_NOAPI(s == NULL ? TRUE : FALSE) +} /* end H5T_vlen_str_mem_isnull() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_str_mem_read * @@ -671,14 +655,14 @@ static herr_t H5T_vlen_str_mem_read(H5F_t H5_ATTR_UNUSED *f, void *_vl, void *buf, size_t len) { #ifdef H5_NO_ALIGNMENT_RESTRICTIONS - char *s=*(char **)_vl; /* Pointer to the user's string information */ + char *s = *(char **)_vl; /* Pointer to the user's string information */ #else - char *s; /* Pointer to the user's string information */ + char *s; /* Pointer to the user's string information */ #endif FUNC_ENTER_NOAPI_NOINIT_NOERR - if(len > 0) { + if (len > 0) { /* check parameters */ HDassert(buf); #ifdef H5_NO_ALIGNMENT_RESTRICTIONS @@ -692,9 +676,8 @@ H5T_vlen_str_mem_read(H5F_t H5_ATTR_UNUSED *f, void *_vl, void *buf, size_t len) } /* end if */ FUNC_LEAVE_NOAPI(SUCCEED) -} /* end H5T_vlen_str_mem_read() */ +} /* end H5T_vlen_str_mem_read() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_str_mem_write * @@ -708,13 +691,12 @@ H5T_vlen_str_mem_read(H5F_t H5_ATTR_UNUSED *f, void *_vl, void *buf, size_t len) *------------------------------------------------------------------------- */ static herr_t -H5T_vlen_str_mem_write(H5F_t H5_ATTR_UNUSED *f, const H5T_vlen_alloc_info_t *vl_alloc_info, - void *_vl, void *buf, void H5_ATTR_UNUSED *_bg, size_t seq_len, - size_t base_size) +H5T_vlen_str_mem_write(H5F_t H5_ATTR_UNUSED *f, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, + void *buf, void H5_ATTR_UNUSED *_bg, size_t seq_len, size_t base_size) { - char *t; /* Pointer to temporary buffer allocated */ - size_t len; /* Maximum length of the string to copy */ - herr_t ret_value=SUCCEED; /* Return value */ + char * t; /* Pointer to temporary buffer allocated */ + size_t len; /* Maximum length of the string to copy */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -722,13 +704,15 @@ H5T_vlen_str_mem_write(H5F_t H5_ATTR_UNUSED *f, const H5T_vlen_alloc_info_t *vl_ HDassert(buf); /* Use the user's memory allocation routine if one is defined */ - if(vl_alloc_info->alloc_func != NULL) { - if(NULL == (t = (char *)(vl_alloc_info->alloc_func)((seq_len + 1) * base_size, vl_alloc_info->alloc_info))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "application memory allocation routine failed for VL data") - } /* end if */ - else /* Default to system malloc */ - if(NULL == (t = (char *)HDmalloc((seq_len + 1) * base_size))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "memory allocation failed for VL data") + if (vl_alloc_info->alloc_func != NULL) { + if (NULL == + (t = (char *)(vl_alloc_info->alloc_func)((seq_len + 1) * base_size, vl_alloc_info->alloc_info))) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, + "application memory allocation routine failed for VL data") + } /* end if */ + else /* Default to system malloc */ + if (NULL == (t = (char *)HDmalloc((seq_len + 1) * base_size))) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTALLOC, FAIL, "memory allocation failed for VL data") /* 'write' the string into the buffer, with memcpy() */ len = (seq_len * base_size); @@ -742,7 +726,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) /*lint !e429 The pointer in 't' has been copied */ } /* end H5T_vlen_str_mem_write() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_str_mem_setnull * @@ -758,17 +741,16 @@ done: static herr_t H5T_vlen_str_mem_setnull(H5F_t H5_ATTR_UNUSED *f, void *_vl, void H5_ATTR_UNUSED *_bg) { - char *t=NULL; /* Pointer to temporary buffer allocated */ + char *t = NULL; /* Pointer to temporary buffer allocated */ FUNC_ENTER_NOAPI_NOINIT_NOERR /* Set pointer in user's buffer with memcpy, to avoid alignment issues */ - H5MM_memcpy(_vl,&t,sizeof(char *)); + H5MM_memcpy(_vl, &t, sizeof(char *)); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5T_vlen_str_mem_setnull() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_disk_getlen * @@ -784,8 +766,8 @@ H5T_vlen_str_mem_setnull(H5F_t H5_ATTR_UNUSED *f, void *_vl, void H5_ATTR_UNUSED static ssize_t H5T_vlen_disk_getlen(const void *_vl) { - const uint8_t *vl=(const uint8_t *)_vl; /* Pointer to the disk VL information */ - size_t seq_len = 0; /* Sequence length */ + const uint8_t *vl = (const uint8_t *)_vl; /* Pointer to the disk VL information */ + size_t seq_len = 0; /* Sequence length */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -797,7 +779,6 @@ H5T_vlen_disk_getlen(const void *_vl) FUNC_LEAVE_NOAPI((ssize_t)seq_len) } /* end H5T_vlen_disk_getlen() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_disk_getptr * @@ -821,7 +802,6 @@ H5T_vlen_disk_getptr(void H5_ATTR_UNUSED *vl) FUNC_LEAVE_NOAPI(NULL) } /* end H5T_vlen_disk_getptr() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_disk_isnull * @@ -838,7 +818,7 @@ static htri_t H5T_vlen_disk_isnull(const H5F_t *f, void *_vl) { uint8_t *vl = (uint8_t *)_vl; /* Pointer to the disk VL information */ - haddr_t addr; /* Sequence's heap address */ + haddr_t addr; /* Sequence's heap address */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -854,7 +834,6 @@ H5T_vlen_disk_isnull(const H5F_t *f, void *_vl) FUNC_LEAVE_NOAPI(addr == 0 ? TRUE : FALSE) } /* end H5T_vlen_disk_isnull() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_disk_read * @@ -870,9 +849,9 @@ H5T_vlen_disk_isnull(const H5F_t *f, void *_vl) static herr_t H5T_vlen_disk_read(H5F_t *f, void *_vl, void *buf, size_t H5_ATTR_UNUSED len) { - uint8_t *vl=(uint8_t *)_vl; /* Pointer to the user's hvl_t information */ - H5HG_t hobjid; - herr_t ret_value=SUCCEED; /* Return value */ + uint8_t *vl = (uint8_t *)_vl; /* Pointer to the user's hvl_t information */ + H5HG_t hobjid; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -889,16 +868,15 @@ H5T_vlen_disk_read(H5F_t *f, void *_vl, void *buf, size_t H5_ATTR_UNUSED len) UINT32DECODE(vl, hobjid.idx); /* Check if this sequence actually has any data */ - if(hobjid.addr > 0) + if (hobjid.addr > 0) /* Read the VL information from disk */ - if(NULL == H5HG_read(f, &hobjid, buf, NULL)) + if (NULL == H5HG_read(f, &hobjid, buf, NULL)) HGOTO_ERROR(H5E_DATATYPE, H5E_READERROR, FAIL, "Unable to read VL information") done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5T_vlen_disk_read() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_disk_write * @@ -912,14 +890,14 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t H5_ATTR_UNUSED *vl_alloc_info, - void *_vl, void *buf, void *_bg, size_t seq_len, size_t base_size) +H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t H5_ATTR_UNUSED *vl_alloc_info, void *_vl, void *buf, + void *_bg, size_t seq_len, size_t base_size) { uint8_t *vl = (uint8_t *)_vl; /*Pointer to the user's hvl_t information*/ uint8_t *bg = (uint8_t *)_bg; /*Pointer to the old data hvl_t */ - H5HG_t hobjid; /* New VL sequence's heap ID */ - size_t len; /* Size of new sequence on disk (in bytes) */ - herr_t ret_value = SUCCEED; /* Return value */ + H5HG_t hobjid; /* New VL sequence's heap ID */ + size_t len; /* Size of new sequence on disk (in bytes) */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -929,8 +907,8 @@ H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t H5_ATTR_UNUSED *vl_all HDassert(f); /* Free heap object for old data. */ - if(bg!=NULL) { - H5HG_t bg_hobjid; /* "Background" VL info sequence's ID info */ + if (bg != NULL) { + H5HG_t bg_hobjid; /* "Background" VL info sequence's ID info */ /* Skip the length of the sequence and heap object ID from background data. */ bg += 4; @@ -940,9 +918,9 @@ H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t H5_ATTR_UNUSED *vl_all UINT32DECODE(bg, bg_hobjid.idx); /* Free heap object for old data */ - if(bg_hobjid.addr > 0) + if (bg_hobjid.addr > 0) /* Free heap object */ - if(H5HG_remove(f, &bg_hobjid) < 0) + if (H5HG_remove(f, &bg_hobjid) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_WRITEERROR, FAIL, "Unable to remove heap object") } /* end if */ @@ -950,8 +928,8 @@ H5T_vlen_disk_write(H5F_t *f, const H5T_vlen_alloc_info_t H5_ATTR_UNUSED *vl_all UINT32ENCODE(vl, seq_len); /* Write the VL information to disk (allocates space also) */ - len = (seq_len*base_size); - if(H5HG_insert(f, len, buf, &hobjid) < 0) + len = (seq_len * base_size); + if (H5HG_insert(f, len, buf, &hobjid) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_WRITEERROR, FAIL, "Unable to write VL information") /* Encode the heap information */ @@ -962,7 +940,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5T_vlen_disk_write() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_disk_setnull * @@ -978,10 +955,10 @@ done: static herr_t H5T_vlen_disk_setnull(H5F_t *f, void *_vl, void *_bg) { - uint8_t *vl = (uint8_t *)_vl; /*Pointer to the user's hvl_t information*/ - uint8_t *bg = (uint8_t *)_bg; /*Pointer to the old data hvl_t */ - uint32_t seq_len = 0; /* Sequence length */ - herr_t ret_value = SUCCEED; /* Return value */ + uint8_t *vl = (uint8_t *)_vl; /*Pointer to the user's hvl_t information*/ + uint8_t *bg = (uint8_t *)_bg; /*Pointer to the old data hvl_t */ + uint32_t seq_len = 0; /* Sequence length */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -990,8 +967,8 @@ H5T_vlen_disk_setnull(H5F_t *f, void *_vl, void *_bg) HDassert(vl); /* Free heap object for old data. */ - if(bg != NULL) { - H5HG_t bg_hobjid; /* "Background" VL info sequence's ID info */ + if (bg != NULL) { + H5HG_t bg_hobjid; /* "Background" VL info sequence's ID info */ /* Skip the length of the sequence and heap object ID from background data. */ bg += 4; @@ -1001,12 +978,12 @@ H5T_vlen_disk_setnull(H5F_t *f, void *_vl, void *_bg) UINT32DECODE(bg, bg_hobjid.idx); /* Free heap object for old data */ - if(bg_hobjid.addr > 0) { + if (bg_hobjid.addr > 0) { /* Free heap object */ - if(H5HG_remove(f, &bg_hobjid) < 0) + if (H5HG_remove(f, &bg_hobjid) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_WRITEERROR, FAIL, "Unable to remove heap object") - } /* end if */ - } /* end if */ + } /* end if */ + } /* end if */ /* Set the length of the sequence */ UINT32ENCODE(vl, seq_len); @@ -1019,7 +996,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5T_vlen_disk_setnull() */ - /*-------------------------------------------------------------------------- NAME H5T_vlen_reclaim_recurse @@ -1044,8 +1020,8 @@ done: static herr_t H5T_vlen_reclaim_recurse(void *elem, const H5T_t *dt, H5MM_free_t free_func, void *free_info) { - unsigned u; /* Local index variable */ - herr_t ret_value = SUCCEED; /* Return value */ + unsigned u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -1053,69 +1029,72 @@ H5T_vlen_reclaim_recurse(void *elem, const H5T_t *dt, H5MM_free_t free_func, voi HDassert(dt); /* Check the datatype of this element */ - switch(dt->shared->type) { + switch (dt->shared->type) { case H5T_ARRAY: /* Recurse on each element, if the array's base type is array, VL, enum or compound */ - if(H5T_IS_COMPLEX(dt->shared->parent->shared->type)) { - void *off; /* offset of field */ + if (H5T_IS_COMPLEX(dt->shared->parent->shared->type)) { + void *off; /* offset of field */ /* Calculate the offset member and recurse on it */ - for(u = 0; u < dt->shared->u.array.nelem; u++) { + for (u = 0; u < dt->shared->u.array.nelem; u++) { off = ((uint8_t *)elem) + u * (dt->shared->parent->shared->size); - if(H5T_vlen_reclaim_recurse(off, dt->shared->parent, free_func, free_info) < 0) + if (H5T_vlen_reclaim_recurse(off, dt->shared->parent, free_func, free_info) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTFREE, FAIL, "unable to free array element") } /* end for */ - } /* end if */ + } /* end if */ break; case H5T_COMPOUND: /* Check each field and recurse on VL, compound, enum or array ones */ - for(u = 0; u < dt->shared->u.compnd.nmembs; u++) { + for (u = 0; u < dt->shared->u.compnd.nmembs; u++) { /* Recurse if it's VL, compound, enum or array */ - if(H5T_IS_COMPLEX(dt->shared->u.compnd.memb[u].type->shared->type)) { - void *off; /* offset of field */ + if (H5T_IS_COMPLEX(dt->shared->u.compnd.memb[u].type->shared->type)) { + void *off; /* offset of field */ /* Calculate the offset member and recurse on it */ off = ((uint8_t *)elem) + dt->shared->u.compnd.memb[u].offset; - if(H5T_vlen_reclaim_recurse(off, dt->shared->u.compnd.memb[u].type, free_func, free_info) < 0) + if (H5T_vlen_reclaim_recurse(off, dt->shared->u.compnd.memb[u].type, free_func, + free_info) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTFREE, FAIL, "unable to free compound field") } /* end if */ - } /* end for */ + } /* end for */ break; case H5T_VLEN: /* Recurse on the VL information if it's VL, compound, enum or array, then free VL sequence */ - if(dt->shared->u.vlen.type == H5T_VLEN_SEQUENCE) { - hvl_t *vl = (hvl_t *)elem; /* Temp. ptr to the vl info */ + if (dt->shared->u.vlen.type == H5T_VLEN_SEQUENCE) { + hvl_t *vl = (hvl_t *)elem; /* Temp. ptr to the vl info */ /* Check if there is anything actually in this sequence */ - if(vl->len!=0) { + if (vl->len != 0) { /* Recurse if it's VL, array, enum or compound */ - if(H5T_IS_COMPLEX(dt->shared->parent->shared->type)) { - void *off; /* offset of field */ + if (H5T_IS_COMPLEX(dt->shared->parent->shared->type)) { + void *off; /* offset of field */ /* Calculate the offset of each array element and recurse on it */ - while(vl->len > 0) { + while (vl->len > 0) { off = ((uint8_t *)vl->p) + (vl->len - 1) * dt->shared->parent->shared->size; - if(H5T_vlen_reclaim_recurse(off, dt->shared->parent, free_func, free_info) < 0) + if (H5T_vlen_reclaim_recurse(off, dt->shared->parent, free_func, free_info) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTFREE, FAIL, "unable to free VL element") vl->len--; } /* end while */ - } /* end if */ + } /* end if */ /* Free the VL sequence */ - if(free_func != NULL) + if (free_func != NULL) (*free_func)(vl->p, free_info); else HDfree(vl->p); } /* end if */ - } else if(dt->shared->u.vlen.type == H5T_VLEN_STRING) { + } + else if (dt->shared->u.vlen.type == H5T_VLEN_STRING) { /* Free the VL string */ - if(free_func != NULL) + if (free_func != NULL) (*free_func)(*(char **)elem, free_info); else HDfree(*(char **)elem); - } else { + } + else { HDassert(0 && "Invalid VL type"); } /* end else */ break; @@ -1142,9 +1121,8 @@ H5T_vlen_reclaim_recurse(void *elem, const H5T_t *dt, H5MM_free_t free_func, voi done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5T_vlen_reclaim_recurse() */ +} /* end H5T_vlen_reclaim_recurse() */ - /*-------------------------------------------------------------------------- NAME H5T_vlen_reclaim @@ -1170,12 +1148,13 @@ done: REVISION LOG --------------------------------------------------------------------------*/ herr_t -H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned H5_ATTR_UNUSED ndim, - const hsize_t H5_ATTR_UNUSED *point, void *op_data) +H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t H5_ATTR_UNUSED *point, + void *op_data) { - H5T_vlen_alloc_info_t *vl_alloc_info = (H5T_vlen_alloc_info_t *)op_data; /* VL allocation info from iterator */ - H5T_t *dt; - herr_t ret_value = SUCCEED; /* Return value */ + H5T_vlen_alloc_info_t *vl_alloc_info = + (H5T_vlen_alloc_info_t *)op_data; /* VL allocation info from iterator */ + H5T_t *dt; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -1184,18 +1163,18 @@ H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned H5_ATTR_UNUSED ndim, HDassert(H5I_DATATYPE == H5I_get_type(type_id)); /* Check args */ - if(NULL == (dt = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE))) + if (NULL == (dt = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype") - /* Pull the free function and free info pointer out of the op_data and call the recurse datatype free function */ - if(H5T_vlen_reclaim_recurse(elem, dt, vl_alloc_info->free_func, vl_alloc_info->free_info) < 0) + /* Pull the free function and free info pointer out of the op_data and call the recurse datatype free + * function */ + if (H5T_vlen_reclaim_recurse(elem, dt, vl_alloc_info->free_func, vl_alloc_info->free_info) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTFREE, FAIL, "can't reclaim vlen elements") done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5T_vlen_reclaim() */ - /*------------------------------------------------------------------------- * Function: H5T_vlen_reclaim_elmt * @@ -1211,8 +1190,8 @@ done: herr_t H5T_vlen_reclaim_elmt(void *elem, H5T_t *dt) { - H5T_vlen_alloc_info_t vl_alloc_info; /* VL allocation info */ - herr_t ret_value = SUCCEED; /* return value */ + H5T_vlen_alloc_info_t vl_alloc_info; /* VL allocation info */ + herr_t ret_value = SUCCEED; /* return value */ HDassert(dt); HDassert(elem); @@ -1220,14 +1199,13 @@ H5T_vlen_reclaim_elmt(void *elem, H5T_t *dt) FUNC_ENTER_NOAPI(FAIL) /* Get VL allocation info */ - if(H5CX_get_vlen_alloc_info(&vl_alloc_info) < 0) + if (H5CX_get_vlen_alloc_info(&vl_alloc_info) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "unable to retrieve VL allocation info") /* Recurse on buffer to free dynamic fields */ - if(H5T_vlen_reclaim_recurse(elem, dt, vl_alloc_info.free_func, vl_alloc_info.free_info) < 0) + if (H5T_vlen_reclaim_recurse(elem, dt, vl_alloc_info.free_func, vl_alloc_info.free_info) < 0) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTFREE, FAIL, "can't reclaim vlen elements") done: FUNC_LEAVE_NOAPI(ret_value) } /* H5T_vlen_reclaim_elmt */ - |