diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-11-22 19:53:17 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-11-22 19:53:17 (GMT) |
commit | 1cee912aaa058fa765be45c82881a458d32bc7b3 (patch) | |
tree | f7726c1276989d0f957fe88360464f2c39c56d38 /src/H5Gnode.c | |
parent | 293fe87eeec295c4bb4227e17557361ef2f22df2 (diff) | |
download | hdf5-1cee912aaa058fa765be45c82881a458d32bc7b3.zip hdf5-1cee912aaa058fa765be45c82881a458d32bc7b3.tar.gz hdf5-1cee912aaa058fa765be45c82881a458d32bc7b3.tar.bz2 |
[svn-r9559] Purpose:
Code optimization
Description:
Switch a few more malloc/free pairs over to using internal free list code,
to avoid abusing system memory allocator as badly.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
Diffstat (limited to 'src/H5Gnode.c')
-rw-r--r-- | src/H5Gnode.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/H5Gnode.c b/src/H5Gnode.c index 2f83d28..e690108 100644 --- a/src/H5Gnode.c +++ b/src/H5Gnode.c @@ -30,6 +30,10 @@ #define H5G_PACKAGE /*suppress error message about including H5Gpkg.h */ #define H5F_PACKAGE /*suppress error about including H5Fpkg */ +/* Pablo information */ +/* (Put before include files to avoid problems with inline functions) */ +#define PABLO_MASK H5G_node_mask + /* Packages needed by this file... */ #include "H5private.h" /* Generic Functions */ #include "H5ACprivate.h" /* Metadata cache */ @@ -59,8 +63,6 @@ typedef struct H5G_node_key_t { #define H5G_NODE_VERS 1 /*symbol table node version number */ #define H5G_NODE_SIZEOF_HDR(F) (H5G_NODE_SIZEOF_MAGIC + 4) -#define PABLO_MASK H5G_node_mask - /* PRIVATE PROTOTYPES */ static herr_t H5G_node_serialize(H5F_t *f, H5G_node_t *sym, size_t size, uint8_t *buf); static size_t H5G_node_size(H5F_t *f); @@ -1484,7 +1486,7 @@ H5G_node_iterate (H5F_t *f, hid_t dxpl_id, void UNUSED *_lt_key, haddr_t addr, if (NULL == (sn = H5AC_protect(f, dxpl_id, H5AC_SNODE, addr, NULL, NULL, H5AC_READ))) HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, H5B_ITER_ERROR, "unable to load symbol table node"); nsyms = sn->nsyms; - if (NULL==(name_off = H5MM_malloc (nsyms*sizeof(name_off[0])))) + if (NULL==(name_off = H5FL_SEQ_MALLOC(size_t, nsyms))) HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, H5B_ITER_ERROR, "memory allocation failed"); for (i=0; i<nsyms; i++) name_off[i] = sn->entry[i].name_off; @@ -1541,7 +1543,9 @@ done: if (sn && H5AC_unprotect(f, dxpl_id, H5AC_SNODE, addr, sn, FALSE) != SUCCEED) HDONE_ERROR(H5E_SYM, H5E_PROTECT, H5B_ITER_ERROR, "unable to release object header"); - name_off = H5MM_xfree (name_off); + if(name_off) + H5FL_SEQ_FREE(size_t,name_off); + FUNC_LEAVE_NOAPI(ret_value); } @@ -1789,7 +1793,7 @@ done: herr_t H5G_node_close(const H5F_t *f) { - FUNC_ENTER_NOAPI_NOFUNC(H5G_node_close) + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5G_node_close) /* Check arguments. */ assert(f); |