summaryrefslogtreecommitdiffstats
path: root/src/H5Tconv.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-06-23 15:36:35 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-06-23 15:36:35 (GMT)
commit7c3df64cc4742c0316ca81aeef67bd95a5737c70 (patch)
treef6aa023c661a881b2495ea0be4e745b43eea091f /src/H5Tconv.c
parent19644d75931aaa79951830d85eda28de08f17180 (diff)
downloadhdf5-7c3df64cc4742c0316ca81aeef67bd95a5737c70.zip
hdf5-7c3df64cc4742c0316ca81aeef67bd95a5737c70.tar.gz
hdf5-7c3df64cc4742c0316ca81aeef67bd95a5737c70.tar.bz2
[svn-r8731] Purpose:
Code cleanup & minor optimization Description: Re-work the way interface initialization routines are specified in the library to avoid the overhead of checking for them in routines where there is no interface initialization routine. This cleans up warnings with gcc 3.4, reduces the library binary size a bit (about 2-3%) and should speedup the library's execution slightly. Platforms tested: FreeBSD 4.10 (sleipnir) w/gcc34 h5committest
Diffstat (limited to 'src/H5Tconv.c')
-rw-r--r--src/H5Tconv.c55
1 files changed, 25 insertions, 30 deletions
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index 5b36f97..389de12 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -20,7 +20,7 @@
/* Pablo information */
/* (Put before include files to avoid problems with inline functions) */
-#define PABLO_MASK H5Tconv_mask
+#define PABLO_MASK H5T_conv_mask
#include "H5private.h" /*generic functions */
#include "H5Eprivate.h" /*error handling */
@@ -52,10 +52,6 @@ typedef struct H5T_conv_hw_t {
size_t d_aligned; /*number destination elements aligned*/
} H5T_conv_hw_t;
-/* Interface initialization */
-static int interface_initialize_g = 0;
-#define INTERFACE_INIT NULL
-
/* Declare a free list to manage pieces of vlen data */
H5FL_BLK_DEFINE_STATIC(vlen_seq);
@@ -2321,9 +2317,9 @@ H5T_conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
}
n -= priv->base;
- except_ret = H5T_CONV_UNHANDLED;
if (n<0 || n>=priv->length || priv->src2dst[n]<0) {
/*overflow*/
+ except_ret = H5T_CONV_UNHANDLED;
if(cb_struct.func) { /*If user's exception handler is present, use it*/
except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, src_id, dst_id,
s, d, cb_struct.user_data);
@@ -2356,6 +2352,7 @@ H5T_conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
}
}
if (lt>=rt) {
+ except_ret = H5T_CONV_UNHANDLED;
if(cb_struct.func) { /*If user's exception handler is present, use it*/
except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, src_id, dst_id,
src, d, cb_struct.user_data);
@@ -3406,6 +3403,10 @@ H5T_conv_f_f (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
/* The conversion loop */
for (elmtno=0; elmtno<nelmts; elmtno++) {
+ /* Set these variables to default */
+ except_ret = H5T_CONV_UNHANDLED;
+ reverse = TRUE;
+
/*
* If the source and destination buffers overlap then use a
* temporary buffer for the destination.
@@ -3532,10 +3533,6 @@ H5T_conv_f_f (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
if (H5T_NORM_NONE==dst.u.f.norm)
mrsh++;
- /* Set these variables to default */
- except_ret = H5T_CONV_UNHANDLED;
- reverse = TRUE;
-
/*
* Calculate the destination exponent by adding the destination
* bias and clipping by the minimum and maximum possible
@@ -3614,13 +3611,13 @@ H5T_conv_f_f (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
H5T_bit_set(d, dst.u.f.mpos, 1, TRUE);
} else if (mrsh==dst.u.f.msize) {
H5T_bit_set(d, dst.u.f.mpos, dst.u.f.msize, FALSE);
- H5T_bit_set_d(d, dst.u.f.mpos, MIN(2, dst.u.f.msize), implied);
+ H5T_bit_set_d(d, dst.u.f.mpos, MIN(2, dst.u.f.msize), (hsize_t)implied);
} else {
if (mrsh>0) {
H5T_bit_set(d, dst.u.f.mpos+dst.u.f.msize-mrsh, mrsh,
FALSE);
H5T_bit_set_d(d, dst.u.f.mpos+dst.u.f.msize-mrsh, 2,
- implied);
+ (hsize_t)implied);
}
if (mrsh+msize>=dst.u.f.msize) {
H5T_bit_copy(d, dst.u.f.mpos,
@@ -8756,7 +8753,7 @@ H5T_conv_f_i (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
/* Allocate enough space for the buffer holding temporary
* converted value
*/
- buf_size = (size_t)HDpow((double)2.0, (double)src.u.f.esize) / 8 + 1;
+ buf_size = (size_t)HDpow((double)2.0, (double)src.u.f.esize) / 8 + 1;
int_buf = (uint8_t*)H5MM_calloc(buf_size);
/* Get the plist structure. Do I need to close it? */
@@ -8772,6 +8769,11 @@ H5T_conv_f_i (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
/* The conversion loop */
for (elmtno=0; elmtno<nelmts; elmtno++) {
+ /* Set these variables to default */
+ except_ret = H5T_CONV_UNHANDLED;
+ truncated = FALSE;
+ reverse = TRUE;
+
/*
* If the source and destination buffers overlap then use a
* temporary buffer for the destination.
@@ -8919,11 +8921,6 @@ H5T_conv_f_i (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
sfirst = H5T_bit_find(int_buf, 0, 8*buf_size, H5T_BIT_MSB, TRUE);
first = (size_t)sfirst;
- /* Set these variables to default */
- except_ret = H5T_CONV_UNHANDLED;
- truncated = FALSE;
- reverse = TRUE;
-
if(sfirst < 0) {
/*
* The source has no bits set and must therefore be zero.
@@ -9240,10 +9237,15 @@ H5T_conv_i_f (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
/* The conversion loop */
for (elmtno=0; elmtno<nelmts; elmtno++) {
+ /* Set these variables to default */
+ except_ret = H5T_CONV_UNHANDLED;
+ reverse = TRUE;
+
/* Make sure these variables are reset to 0. */
sign = 0; /*source sign bit value */
is_max_neg = 0; /*source is maximal negative value*/
do_round = 0; /*whether there is roundup */
+ sfirst = 0;
/*
* If the source and destination buffers overlap then use a
@@ -9333,15 +9335,11 @@ H5T_conv_i_f (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
H5T_bit_set(int_buf, src.prec, buf_size*8-src.prec, 0);
/* Set sign bit in destiny */
- H5T_bit_set_d(d, dst.u.f.sign, 1, sign);
+ H5T_bit_set_d(d, dst.u.f.sign, 1, (hsize_t)sign);
}
first = (size_t)sfirst;
- /* Set these variables to default */
- except_ret = H5T_CONV_UNHANDLED;
- reverse = TRUE;
-
/*
* Calculate the true destination exponent by adjusting according to
* the destination exponent bias.
@@ -9542,22 +9540,19 @@ done:
static herr_t
H5T_reverse_order(uint8_t *rev, uint8_t *s, size_t size, H5T_order_t order)
{
- herr_t ret_value = SUCCEED;
size_t i;
- FUNC_ENTER_NOAPI(H5T_reverse_order, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5T_reverse_order);
assert(s);
assert(size);
- if (H5T_ORDER_BE == order) {
+ if (H5T_ORDER_BE == order)
for (i=0; i<size; i++)
rev[size-(i+1)] = s[i];
- } else {
+ else
for (i=0; i<size; i++)
rev[i] = s[i];
- }
-done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(SUCCEED);
}