summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-06-10 21:02:43 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-06-10 21:02:43 (GMT)
commit8b82f6d9f0100e07bd4eb1267404135c7f0515d1 (patch)
tree8c27afbe6e2695c31ee6fedeb2f47add980e4c46
parent9d0ee097081d06dc71fa0d103716a01e24ada2b3 (diff)
downloadhdf5-8b82f6d9f0100e07bd4eb1267404135c7f0515d1.zip
hdf5-8b82f6d9f0100e07bd4eb1267404135c7f0515d1.tar.gz
hdf5-8b82f6d9f0100e07bd4eb1267404135c7f0515d1.tar.bz2
[svn-r8648] Purpose:
Code optimization Description: Eliminate some operations through temporary variables in H5F_addr_encode. Eliminate some redundant memset()'s of structures that will be completely overwritten in the variable-length datatype code. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel
-rw-r--r--src/H5F.c8
-rw-r--r--src/H5Tvlen.c12
2 files changed, 6 insertions, 14 deletions
diff --git a/src/H5F.c b/src/H5F.c
index db27c6a..456a799 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -4629,18 +4629,16 @@ void
H5F_addr_encode(const H5F_t *f, uint8_t **pp/*in,out*/, haddr_t addr)
{
unsigned i;
- haddr_t tmp;
assert(f);
assert(pp && *pp);
if (H5F_addr_defined(addr)) {
- tmp = addr;
for (i=0; i<H5F_SIZEOF_ADDR(f); i++) {
- *(*pp)++ = (uint8_t)(tmp & 0xff);
- tmp >>= 8;
+ *(*pp)++ = (uint8_t)(addr & 0xff);
+ addr >>= 8;
}
- assert("overflow" && 0 == tmp);
+ assert("overflow" && 0 == addr);
} else {
for (i=0; i<H5F_SIZEOF_ADDR(f); i++)
diff --git a/src/H5Tvlen.c b/src/H5Tvlen.c
index 0d510b59..21628ef 100644
--- a/src/H5Tvlen.c
+++ b/src/H5Tvlen.c
@@ -791,7 +791,6 @@ H5T_vlen_disk_write(H5F_t *f, hid_t dxpl_id, const H5T_vlen_alloc_info_t UNUSED
H5HG_t bg_hobjid; /* "Background" VL info sequence's ID info */
/* Get the length of the sequence and heap object ID from background data. */
- HDmemset(&bg_hobjid,0,sizeof(H5HG_t));
UINT32DECODE(bg, bg_seq_len);
/* Get heap information */
@@ -844,7 +843,6 @@ H5T_vlen_disk_setnull(H5F_t *f, hid_t dxpl_id, void *_vl, void *_bg)
uint8_t *vl=(uint8_t *)_vl; /*Pointer to the user's hvl_t information*/
uint8_t *bg=(uint8_t *)_bg; /*Pointer to the old data hvl_t */
uint32_t seq_len=0; /* Sequence length */
- H5HG_t hobjid; /* New VL sequence's heap ID */
herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5T_vlen_disk_setnull)
@@ -859,7 +857,6 @@ H5T_vlen_disk_setnull(H5F_t *f, hid_t dxpl_id, void *_vl, void *_bg)
H5HG_t bg_hobjid; /* "Background" VL info sequence's ID info */
/* Get the length of the sequence and heap object ID from background data. */
- HDmemset(&bg_hobjid,0,sizeof(H5HG_t));
UINT32DECODE(bg, bg_seq_len);
/* Get heap information */
@@ -877,12 +874,9 @@ H5T_vlen_disk_setnull(H5F_t *f, hid_t dxpl_id, void *_vl, void *_bg)
/* Set the length of the sequence */
UINT32ENCODE(vl, seq_len);
- /* Set the "nil" pointer information for the heap ID */
- HDmemset(&hobjid,0,sizeof(H5HG_t));
-
- /* Encode the heap information */
- H5F_addr_encode(f,&vl,hobjid.addr);
- INT32ENCODE(vl,hobjid.idx);
+ /* Encode the "nil" heap pointer information */
+ H5F_addr_encode(f,&vl,(haddr_t)0);
+ INT32ENCODE(vl,0);
done:
FUNC_LEAVE_NOAPI(ret_value)