diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-11-22 17:14:40 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-11-22 17:14:40 (GMT) |
commit | 2cf4e3037702673813530c31e7983794faf2bac2 (patch) | |
tree | 163a3de8816f4d59fa0cdf2d4d7e0359dba15925 /src/H5Olayout.c | |
parent | e99a1f7838d12cb734edf860b15da18d2e4e5f83 (diff) | |
download | hdf5-2cf4e3037702673813530c31e7983794faf2bac2.zip hdf5-2cf4e3037702673813530c31e7983794faf2bac2.tar.gz hdf5-2cf4e3037702673813530c31e7983794faf2bac2.tar.bz2 |
[svn-r9557] Purpose:
Code cleanup & optimization
Description:
Improve ADF/CGNS benchmark by reducing the number of internal attribute
copies made during creations, opens and writes.
Added new H5O_iterate() routine for iterating through messages of a certain
type in the object header (attributes are the only message currently that can
have multiple instances in the object header).
Cross-pollinated various minor code cleanups to reduce diffs between
branches.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
Diffstat (limited to 'src/H5Olayout.c')
-rw-r--r-- | src/H5Olayout.c | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/src/H5Olayout.c b/src/H5Olayout.c index 1918924..4a19b5b 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -20,6 +20,10 @@ #define H5O_PACKAGE /*suppress error about including H5Opkg */ +/* Pablo information */ +/* (Put before include files to avoid problems with inline functions) */ +#define PABLO_MASK H5O_layout_mask + #include "H5private.h" #include "H5Dprivate.h" #include "H5Eprivate.h" @@ -31,7 +35,7 @@ /* PRIVATE PROTOTYPES */ static void *H5O_layout_decode(H5F_t *f, hid_t dxpl_id, const uint8_t *p, H5O_shared_t *sh); static herr_t H5O_layout_encode(H5F_t *f, uint8_t *p, const void *_mesg); -static void *H5O_layout_copy(const void *_mesg, void *_dest); +static void *H5O_layout_copy(const void *_mesg, void *_dest, unsigned update_flags); static size_t H5O_layout_size(H5F_t *f, const void *_mesg); static herr_t H5O_layout_reset (void *_mesg); static herr_t H5O_layout_free (void *_mesg); @@ -65,8 +69,6 @@ const H5O_class_t H5O_LAYOUT[1] = {{ #define H5O_LAYOUT_VERSION_3 3 /* Interface initialization */ -#define PABLO_MASK H5O_layout_mask -static int interface_initialize_g = 0; #define INTERFACE_INIT NULL /* Declare a free list to manage the H5O_layout_t struct */ @@ -103,7 +105,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p, H5O_shared_t unsigned u; void *ret_value; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_decode, NULL); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_decode); /* check args */ assert(f); @@ -257,7 +259,7 @@ H5O_layout_encode(H5F_t *f, uint8_t *p, const void *_mesg) unsigned u; herr_t ret_value=SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_encode, FAIL); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_encode); /* check args */ assert(f); @@ -372,13 +374,13 @@ done: *------------------------------------------------------------------------- */ static void * -H5O_layout_copy(const void *_mesg, void *_dest) +H5O_layout_copy(const void *_mesg, void *_dest, unsigned UNUSED update_flags) { const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg; H5O_layout_t *dest = (H5O_layout_t *) _dest; void *ret_value; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_copy, NULL); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_copy); /* check args */ assert(mesg); @@ -431,7 +433,7 @@ H5O_layout_meta_size(H5F_t *f, const void *_mesg) H5O_layout_t *mesg = (H5O_layout_t *) _mesg; size_t ret_value; - FUNC_ENTER_NOAPI(H5O_layout_meta_size, 0); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_meta_size); /* check args */ assert(f); @@ -539,7 +541,7 @@ H5O_layout_size(H5F_t *f, const void *_mesg) const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg; size_t ret_value; - FUNC_ENTER_NOAPI(H5O_layout_size, 0); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_layout_size); /* check args */ assert(f); @@ -548,7 +550,7 @@ H5O_layout_size(H5F_t *f, const void *_mesg) ret_value = H5O_layout_meta_size(f, mesg); if(mesg->type==H5D_COMPACT) ret_value += mesg->u.compact.size;/* data for compact dataset */ -done: + FUNC_LEAVE_NOAPI(ret_value); } @@ -572,9 +574,8 @@ static herr_t H5O_layout_reset (void *_mesg) { H5O_layout_t *mesg = (H5O_layout_t *) _mesg; - herr_t ret_value=SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_reset, FAIL); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_layout_reset); if(mesg) { /* Free the compact storage buffer */ @@ -586,8 +587,7 @@ H5O_layout_reset (void *_mesg) mesg->version=0; } /* end if */ -done: - FUNC_LEAVE_NOAPI(ret_value); + FUNC_LEAVE_NOAPI(SUCCEED); } @@ -609,9 +609,8 @@ static herr_t H5O_layout_free (void *_mesg) { H5O_layout_t *mesg = (H5O_layout_t *) _mesg; - herr_t ret_value=SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_free, FAIL); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_layout_free); assert (mesg); @@ -621,8 +620,7 @@ H5O_layout_free (void *_mesg) H5FL_FREE(H5O_layout_t,mesg); -done: - FUNC_LEAVE_NOAPI(ret_value); + FUNC_LEAVE_NOAPI(SUCCEED); } @@ -646,7 +644,7 @@ H5O_layout_delete(H5F_t *f, hid_t dxpl_id, const void *_mesg) const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg; herr_t ret_value=SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_delete, FAIL); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_delete); /* check args */ assert(f); @@ -699,9 +697,8 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE { const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg; unsigned u; - herr_t ret_value=SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(H5O_layout_debug, FAIL); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_layout_debug); /* check args */ assert(f); @@ -735,6 +732,5 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE "Data Size:", mesg->u.compact.size); } /* end else */ -done: - FUNC_LEAVE_NOAPI(ret_value); + FUNC_LEAVE_NOAPI(SUCCEED); } |