diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2014-04-11 14:48:31 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2014-04-11 14:48:31 (GMT) |
commit | 8a524752454c04a07a378b39abc929fd8948d91b (patch) | |
tree | e6ad7cc080461c68bdc7dda04df9da07026ce3a2 /src | |
parent | 6240fb24e6e06039dada4bc7e23ca1a211a0ab2c (diff) | |
download | hdf5-8a524752454c04a07a378b39abc929fd8948d91b.zip hdf5-8a524752454c04a07a378b39abc929fd8948d91b.tar.gz hdf5-8a524752454c04a07a378b39abc929fd8948d91b.tar.bz2 |
[svn-r25014] Purpose:
Merge of r24937 from the trunk
Adds H5free_memory to the API. This function should be used to free
memory allocated by the library (e.g., returned values from
H5Tget_tag, H5Pget_class_name, etc.).
This is mainly to help Windows applications deal with multiple CRT
instances, but can also be helpful when a debug memory manager is
being used or when the HDF5 API is being wrapped for managed languages
like Python and Java.
Tested on:
32-bit LE linux (jam) with fortran and C++
64-bit BE linux (ostrich)
64-bit LE linux (koala)
Diffstat (limited to 'src')
-rw-r--r-- | src/H5.c | 25 | ||||
-rw-r--r-- | src/H5public.h | 1 |
2 files changed, 26 insertions, 0 deletions
@@ -804,3 +804,28 @@ H5close(void) FUNC_LEAVE_API_NOFS(SUCCEED) } /* end H5close() */ + +/*------------------------------------------------------------------------- + * Function: H5free_memory + * + * Purpose: Frees memory allocated by the library that it is the user's + * responsibility to free. Ensures that the same library + * that was used to allocate the memory frees it. Passing + * NULL pointers is allowed. + * + * Return: SUCCEED/FAIL + * + *------------------------------------------------------------------------- + */ +herr_t +H5free_memory(void *mem) +{ + FUNC_ENTER_API_NOINIT + H5TRACE1("e", "*x", mem); + + /* At this time, it is impossible for this to fail. */ + HDfree(mem); + + FUNC_LEAVE_API(SUCCEED) +} /* end H5free_memory() */ + diff --git a/src/H5public.h b/src/H5public.h index 39427ed..4f7e7f7 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -334,6 +334,7 @@ H5_DLL herr_t H5get_libversion(unsigned *majnum, unsigned *minnum, unsigned *relnum); H5_DLL herr_t H5check_version(unsigned majnum, unsigned minnum, unsigned relnum); +H5_DLL herr_t H5free_memory(void *mem); #ifdef __cplusplus } |