summaryrefslogtreecommitdiffstats
path: root/src/H5FS.c
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2015-10-16 02:19:11 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2015-10-16 02:19:11 (GMT)
commit84d6d40b57ac26b73ecde3ed3ee2dad26855b9eb (patch)
tree5680e556dbb0971024bcea8911beb7efebc184c1 /src/H5FS.c
parent31683703d9bf394cef27805c50fc89efa29361b9 (diff)
downloadhdf5-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.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/H5FS.c b/src/H5FS.c
index 7f437dd..e52b03b 100644
--- a/src/H5FS.c
+++ b/src/H5FS.c
@@ -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