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/H5Oattr.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/H5Oattr.c')
-rw-r--r-- | src/H5Oattr.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/H5Oattr.c b/src/H5Oattr.c index bb22f70..7e4314e 100644 --- a/src/H5Oattr.c +++ b/src/H5Oattr.c @@ -32,7 +32,7 @@ /* PRIVATE PROTOTYPES */ static herr_t H5O_attr_encode (H5F_t *f, uint8_t *p, const void *mesg); static void *H5O_attr_decode (H5F_t *f, hid_t dxpl_id, const uint8_t *p, H5O_shared_t *sh); -static void *H5O_attr_copy (const void *_mesg, void *_dest); +static void *H5O_attr_copy (const void *_mesg, void *_dest, unsigned update_flags); static size_t H5O_attr_size (H5F_t *f, const void *_mesg); static herr_t H5O_attr_reset (void *_mesg); static herr_t H5O_attr_free (void *mesg); @@ -69,7 +69,6 @@ const H5O_class_t H5O_ATTR[1] = {{ #define H5O_ATTR_FLAG_TYPE_SHARED 0x01 /* Interface initialization */ -static int interface_initialize_g = 0; #define INTERFACE_INIT NULL /* Declare extern the free list for H5A_t's */ @@ -372,8 +371,8 @@ done: This function copies a native (memory) attribute message, allocating the destination structure if necessary. --------------------------------------------------------------------------*/ -static void * -H5O_attr_copy(const void *_src, void *_dst) +static void * +H5O_attr_copy(const void *_src, void *_dst, unsigned update_flags) { const H5A_t *src = (const H5A_t *) _src; void *ret_value; /* Return value */ @@ -384,7 +383,7 @@ H5O_attr_copy(const void *_src, void *_dst) assert(src); /* copy */ - if (NULL == (ret_value = H5A_copy(_dst,src))) + if (NULL == (ret_value = H5A_copy(_dst,src,update_flags))) HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, NULL, "can't copy attribute"); done: @@ -485,7 +484,7 @@ H5O_attr_reset(void *_mesg) H5A_t *attr = (H5A_t *) _mesg; herr_t ret_value=SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_reset); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_reset); if (attr) H5A_free(attr); |