diff options
Diffstat (limited to 'src/H5checksum.c')
-rw-r--r-- | src/H5checksum.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/H5checksum.c b/src/H5checksum.c index e42f152..3359722 100644 --- a/src/H5checksum.c +++ b/src/H5checksum.c @@ -126,10 +126,10 @@ H5_checksum_fletcher32(const void *_data, size_t _len) * performed without numeric overflow) */ while (len) { - unsigned tlen = len > 360 ? 360 : len; + size_t tlen = len > 360 ? 360 : len; len -= tlen; do { - sum1 += (((uint16_t)data[0]) << 8) | ((uint16_t)data[1]); + sum1 += (uint32_t)(((uint16_t)data[0]) << 8) | ((uint16_t)data[1]); data += 2; sum2 += sum1; } while (--tlen); @@ -139,7 +139,7 @@ H5_checksum_fletcher32(const void *_data, size_t _len) /* Check for odd # of bytes */ if(_len % 2) { - sum1 += ((uint16_t)*data) << 8; + sum1 += (uint32_t)(((uint16_t)*data) << 8); sum2 += sum1; sum1 = (sum1 & 0xffff) + (sum1 >> 16); sum2 = (sum2 & 0xffff) + (sum2 >> 16); @@ -486,8 +486,8 @@ H5_hash_string(const char *str) /* Sanity check */ HDassert(str); - while(c = *str++) - hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ + while((c = *str++)) + hash = ((hash << 5) + hash) + (uint32_t)c; /* hash * 33 + c */ FUNC_LEAVE_NOAPI(hash) } /* end H5_hash_string() */ |