diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2015-10-16 02:19:11 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2015-10-16 02:19:11 (GMT) |
commit | 84d6d40b57ac26b73ecde3ed3ee2dad26855b9eb (patch) | |
tree | 5680e556dbb0971024bcea8911beb7efebc184c1 /src/H5FS.c | |
parent | 31683703d9bf394cef27805c50fc89efa29361b9 (diff) | |
download | hdf5-84d6d40b57ac26b73ecde3ed3ee2dad26855b9eb.zip hdf5-84d6d40b57ac26b73ecde3ed3ee2dad26855b9eb.tar.gz hdf5-84d6d40b57ac26b73ecde3ed3ee2dad26855b9eb.tar.bz2 |
[svn-r28093] Merge of r27768 and r27774 from trunk
Description:
Complete revamp of package initialization/shutdown mechanism in the library.
Each package now has a single init/term routine.
This new way should avoid packages being re-initialized during library
shutdown and is also be _much_ more proactive about giving feedback for
resource leaks internal to the library.
Introduces a new "module" header file for packages in the library
(e.g src/H5Fmodule.h) which sets up some necessary package configuration macros
for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly
modified version of this header, src/H5FDdrvr_module.h)
Also cleaned up a bunch of resources leaks all across the library and tests,
along with addressing many warnings, as I encountered them.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
serial and parallel (MPICH 3.1.4)
Diffstat (limited to 'src/H5FS.c')
-rw-r--r-- | src/H5FS.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -27,7 +27,8 @@ /* Module Setup */ /****************/ -#define H5FS_PACKAGE /* suppress error about including H5FSpkg */ +#include "H5FSmodule.h" /* This source code file is part of the H5FS module */ + /***********/ /* Headers */ @@ -38,6 +39,7 @@ #include "H5FSpkg.h" /* File free space */ #include "H5MFprivate.h" /* File memory management */ + /****************/ /* Local Macros */ /****************/ @@ -66,6 +68,9 @@ static herr_t H5FS_sinfo_free_node_cb(void *item, void *key, void *op_data); /* Package Variables */ /*********************/ +/* Package initialization variable */ +hbool_t H5_PKG_INIT_VAR = FALSE; + /* Declare a free list to manage the H5FS_section_class_t sequence information */ H5FL_SEQ_DEFINE(H5FS_section_class_t); @@ -102,7 +107,7 @@ H5FS_create(H5F_t *f, hid_t dxpl_id, haddr_t *fs_addr, const H5FS_create_t *fs_c uint16_t nclasses, const H5FS_section_class_t *classes[], void *cls_init_udata, hsize_t alignment, hsize_t threshold) { H5FS_t *fspace = NULL; /* New free space structure */ - H5FS_t *ret_value; /* Return value */ + H5FS_t *ret_value = NULL; /* Return value */ FUNC_ENTER_NOAPI_TAG(dxpl_id, H5AC__FREESPACE_TAG, NULL) #ifdef H5FS_DEBUG @@ -588,7 +593,7 @@ H5FS__new(const H5F_t *f, uint16_t nclasses, const H5FS_section_class_t *classes { H5FS_t *fspace = NULL; /* Free space manager */ size_t u; /* Local index variable */ - H5FS_t *ret_value; /* Return value */ + H5FS_t *ret_value = NULL; /* Return value */ FUNC_ENTER_PACKAGE |