summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2010-04-06 21:33:10 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2010-04-06 21:33:10 (GMT)
commit5359456644af3f4fa07821c58cdb3818e2f515de (patch)
tree9838384630a32fc74648bcad7ad5ab78cd97753f
parenta148f6e443cf2419eb37897eec48c175cf824611 (diff)
downloadhdf5-5359456644af3f4fa07821c58cdb3818e2f515de.zip
hdf5-5359456644af3f4fa07821c58cdb3818e2f515de.tar.gz
hdf5-5359456644af3f4fa07821c58cdb3818e2f515de.tar.bz2
[svn-r18522] Description:
Bring metadata journaling branch into closer correspondence with trunk: extract data structure freeing routines from metadata cache client 'destroy' callbacks. Tested on: Mac OS X/32 10.6.3 (amazon) w/debug (h5committest not required on this branch)
-rw-r--r--src/H5O.c12
-rw-r--r--src/H5Ocache.c11
-rw-r--r--src/H5Ocopy.c2
-rw-r--r--src/H5Opkg.h2
4 files changed, 15 insertions, 12 deletions
diff --git a/src/H5O.c b/src/H5O.c
index 47efbeb..01abfa3 100644
--- a/src/H5O.c
+++ b/src/H5O.c
@@ -1206,7 +1206,7 @@ H5O_create(H5F_t *f, hid_t dxpl_id, size_t size_hint, hid_t ocpl_id,
done:
if(ret_value < 0 && oh)
- if(H5O_dest(oh) < 0)
+ if(H5O_free(oh) < 0)
HDONE_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to destroy object header data")
FUNC_LEAVE_NOAPI(ret_value)
@@ -3208,7 +3208,7 @@ done:
/*-------------------------------------------------------------------------
- * Function: H5O_dest
+ * Function: H5O_free
*
* Purpose: Destroys an object header.
*
@@ -3221,11 +3221,11 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5O_dest(H5O_t *oh)
+H5O_free(H5O_t *oh)
{
unsigned u; /* Local index variable */
- FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dest)
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_free)
/* check args */
HDassert(oh);
@@ -3247,8 +3247,8 @@ H5O_dest(H5O_t *oh)
} /* end if */
/* destroy object header */
- H5FL_FREE(H5O_t, oh);
+ oh = H5FL_FREE(H5O_t, oh);
FUNC_LEAVE_NOAPI(SUCCEED)
-} /* end H5O_dest() */
+} /* end H5O_free() */
diff --git a/src/H5Ocache.c b/src/H5Ocache.c
index 158f432..bfd1403 100644
--- a/src/H5Ocache.c
+++ b/src/H5Ocache.c
@@ -310,7 +310,7 @@ H5O_cache_deserialize(haddr_t addr, size_t len, const void *image,
done:
/* Release the [possibly partially initialized] object header on errors */
if(!ret_value && oh)
- if(H5O_dest(oh) < 0)
+ if(H5O_free(oh) < 0)
HDONE_ERROR(H5E_OHDR, H5E_CANTRELEASE, NULL, "unable to destroy object header data")
FUNC_LEAVE_NOAPI(ret_value)
@@ -496,17 +496,20 @@ static herr_t
H5O_cache_free_icr(haddr_t UNUSED addr, size_t UNUSED len, void *thing)
{
H5O_t *oh = (H5O_t *)thing; /* Object header to destroy */
+ herr_t ret_value = SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_cache_free_icr)
+ FUNC_ENTER_NOAPI_NOINIT(H5O_cache_free_icr)
/* Check arguments */
HDassert(oh);
HDassert(oh->rc == 0);
/* Destroy object header */
- H5O_dest(oh);
+ if(H5O_free(oh) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTRELEASE, FAIL, "can't destroy object header")
- FUNC_LEAVE_NOAPI(SUCCEED)
+done:
+ FUNC_LEAVE_NOAPI(ret_value)
} /* H5O_cache_free_icr() */
diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c
index 4b24d4e..a95495f 100644
--- a/src/H5Ocopy.c
+++ b/src/H5Ocopy.c
@@ -733,7 +733,7 @@ done:
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
/* Release pointer to destination object header */
- if(ret_value < 0 && oh_dst && H5O_dest(oh_dst) < 0)
+ if(ret_value < 0 && oh_dst && H5O_free(oh_dst) < 0)
HDONE_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to destroy object header data")
/* Release user data for particular type of object to copy */
diff --git a/src/H5Opkg.h b/src/H5Opkg.h
index 0c0a7fe..276601c 100644
--- a/src/H5Opkg.h
+++ b/src/H5Opkg.h
@@ -516,7 +516,7 @@ H5_DLL herr_t H5O_delete_mesg(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, H5O_mesg_
H5_DLL const H5O_obj_class_t *H5O_obj_class_real(H5O_t *oh);
H5_DLL herr_t H5O_inc_rc(H5O_t *oh);
H5_DLL herr_t H5O_dec_rc(H5O_t *oh);
-H5_DLL herr_t H5O_dest(H5O_t *oh);
+H5_DLL herr_t H5O_free(H5O_t *oh);
/* Object header message routines */
H5_DLL unsigned H5O_msg_alloc(H5F_t *f, hid_t dxpl_id, H5O_t *oh,