summaryrefslogtreecommitdiffstats
path: root/src/H5Gnode.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-11-22 19:53:17 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-11-22 19:53:17 (GMT)
commit1cee912aaa058fa765be45c82881a458d32bc7b3 (patch)
treef7726c1276989d0f957fe88360464f2c39c56d38 /src/H5Gnode.c
parent293fe87eeec295c4bb4227e17557361ef2f22df2 (diff)
downloadhdf5-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.c14
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);