lib/bindata/int.rb in bindata-2.4.9 vs lib/bindata/int.rb in bindata-2.4.10

- old
+ new

@@ -57,17 +57,19 @@ #------------- private def create_clamp_code(nbits, signed) if signed == :signed - max = (1 << (nbits - 1)) - 1 - min = -(max + 1) + max = "max = (1 << (#{nbits} - 1)) - 1" + min = "min = -(max + 1)" else - max = (1 << nbits) - 1 - min = 0 + max = "max = (1 << #{nbits}) - 1" + min = "min = 0" end - "val = (val < #{min}) ? #{min} : (val > #{max}) ? #{max} : val" + clamp = "(#{max}; #{min}; val = (val < min) ? min : (val > max) ? max : val)" + + "val = #{clamp}" end def create_read_code(nbits, endian, signed) read_str = create_raw_read_code(nbits, endian, signed)