From abe7368338f5700025b24dc14be377ca024b68a1 Mon Sep 17 00:00:00 2001 From: Xiaowen Wu Date: Fri, 29 Apr 2005 15:19:49 -0500 Subject: [svn-r10698] Purpose: Bug fix. Description: The scaleoffset filter checks the uppper limmit of span of values before it is assigned. The check for floating-point data, which may not be represented in the machine exactly as the user wanted, did not consider this. Solution: Slight modification of check above. Platforms tested: heping Misc. update: --- src/H5Zscaleoffset.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/H5Zscaleoffset.c b/src/H5Zscaleoffset.c index b8f698b..3dfd7ac 100644 --- a/src/H5Zscaleoffset.c +++ b/src/H5Zscaleoffset.c @@ -290,17 +290,17 @@ H5Z_class_t H5Z_SCALEOFFSET[1] = {{ { \ if(sizeof(type)==sizeof(int)) { \ if(H5Z_scaleoffset_rnd(max*HDpow(10, D_val) - min*HDpow(10, D_val)) \ - > ~(unsigned int)0 - 2) { \ + >= ~(unsigned int)0 - 2) { \ *minbits = sizeof(int)*8; goto done; \ } \ } else if(sizeof(type)==sizeof(long)) { \ if(H5Z_scaleoffset_rnd(max*HDpow(10, D_val) - min*HDpow(10, D_val)) \ - > ~(unsigned long)0 - 2) { \ + >= ~(unsigned long)0 - 2) { \ *minbits = sizeof(long)*8; goto done; \ } \ } else if(sizeof(type)==sizeof(long_long)) { \ if(H5Z_scaleoffset_rnd(max*HDpow(10, D_val) - min*HDpow(10, D_val)) \ - > ~(unsigned long_long)0 - 2) { \ + >= ~(unsigned long_long)0 - 2) { \ *minbits = sizeof(long_long)*8; goto done; \ } \ } else \ -- cgit v0.12