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)