[svn-r12017] Purpose:

Bug fix

Description:
    Correct problem with new log2(n) routine on 64-bit machines.

Solution:
    Put some casts in to make certain that the values are computed as 32-bit
integers.

Platforms tested:
    Linux 2.4 (mir) - 64-bit
This commit is contained in:
Quincey Koziol 2006-03-06 22:26:31 -05:00
parent 9e8c16d83c
commit 5f59c68e7f
2 changed files with 3 additions and 3 deletions

View File

@ -313,7 +313,7 @@ HDfprintf(stderr, "%s: size = %Zu\n", FUNC, size);
/* Check if this is the first object in the heap */
if(shared->next_man_block == 0) {
/* Check if the object can fit in a direct block of the starting block size */
#ifdef QAK
#ifndef QAK
HDfprintf(stderr, "%s: H5HF_MAN_ABS_DIRECT_OVERHEAD_SIZE = %u\n", FUNC, H5HF_MAN_ABS_DIRECT_OVERHEAD_SIZE(shared, shared->man_dtable_info.cparam.start_block_size));
HDfprintf(stderr, "%s: H5HF_MAN_ABS_DIRECT_OBJ_PREFIX_LEN_SIZE = %u\n", FUNC, H5HF_MAN_ABS_DIRECT_OBJ_PREFIX_LEN_SIZE(shared, shared->man_dtable_info.cparam.start_block_size));
#endif /* QAK */

View File

@ -319,7 +319,7 @@ H5V_vector_inc(int n, hsize_t *v1, const hsize_t *v2)
*-------------------------------------------------------------------------
*/
static H5_inline unsigned
H5V_log2(unsigned n)
H5V_log2(uint32_t n)
{
static const unsigned MultiplyDeBruijnBitPosition[32] =
{
@ -327,7 +327,7 @@ H5V_log2(unsigned n)
31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9
};
return(MultiplyDeBruijnBitPosition[(n * 0x077CB531UL) >> 27]);
return(MultiplyDeBruijnBitPosition[(n * (uint32_t)0x077CB531UL) >> 27]);
} /* H5V_log2() */
#endif /* H5Vprivate_H */