summaryrefslogtreecommitdiffstats
path: root/src/H5HFcache.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2009-10-27 19:18:45 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2009-10-27 19:18:45 (GMT)
commitab3f3e0219d80b5407fe5da785a7faae443c7ffc (patch)
treec51c1dc909d9b5e82f077620ca4fc423a5d1edd4 /src/H5HFcache.c
parent4af649f03d3eb2826616c6f730bc4281c027a536 (diff)
downloadhdf5-ab3f3e0219d80b5407fe5da785a7faae443c7ffc.zip
hdf5-ab3f3e0219d80b5407fe5da785a7faae443c7ffc.tar.gz
hdf5-ab3f3e0219d80b5407fe5da785a7faae443c7ffc.tar.bz2
[svn-r17749] Description:
Refactor v2 B-tree code to bring it further in line with how the fractal heap code works, to make forthcoming modificaions easier. Also minor tweaks to the fractal heap code to clean it up a bit more also. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Diffstat (limited to 'src/H5HFcache.c')
-rw-r--r--src/H5HFcache.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/H5HFcache.c b/src/H5HFcache.c
index b5d7cb5..b967e9d 100644
--- a/src/H5HFcache.c
+++ b/src/H5HFcache.c
@@ -434,7 +434,8 @@ done:
if(wb && H5WB_unwrap(wb) < 0)
HDONE_ERROR(H5E_HEAP, H5E_CLOSEERROR, NULL, "can't close wrapped buffer")
if(!ret_value && hdr)
- (void)H5HF_cache_hdr_dest(f, hdr);
+ if(H5HF_hdr_free(hdr) < 0)
+ HDONE_ERROR(H5E_HEAP, H5E_CANTRELEASE, NULL, "unable to release fractal heap header")
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_cache_hdr_load() */ /*lint !e818 Can't make udata a pointer to const */
@@ -623,16 +624,9 @@ H5HF_cache_hdr_dest(H5F_t *f, H5HF_hdr_t *hdr)
HGOTO_ERROR(H5E_HEAP, H5E_CANTFREE, FAIL, "unable to free fractal heap header")
} /* end if */
- /* Free the block size lookup table for the doubling table */
- H5HF_dtable_dest(&hdr->man_dtable);
-
- /* Release any I/O pipeline filter information */
- if(hdr->pline.nused)
- H5O_msg_reset(H5O_PLINE_ID, &(hdr->pline));
-
/* Free the shared info itself */
- (void)H5FL_FREE(H5HF_hdr_t, hdr);
-
+ if(H5HF_hdr_free(hdr) < 0)
+ HGOTO_ERROR(H5E_HEAP, H5E_CANTRELEASE, FAIL, "unable to release fractal heap header")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_cache_hdr_dest() */