instance method
Gem::SafeMarshal::Reader#read_integer
read_integer
lib/rubygems/safe_marshal/reader.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/rubygems/safe_marshal/reader.rb, line 62
def read_integer
b = read_byte
case b
when 0x00
0
when 0x01
read_byte
when 0x02
read_byte | (read_byte << 8)
when 0x03
read_byte | (read_byte << 8) | (read_byte << 16)
when 0x04
read_byte | (read_byte << 8) | (read_byte << 16) | (read_byte << 24)
when 0xFC
read_byte | (read_byte << 8) | (read_byte << 16) | (read_byte << 24) | -0x100000000
when 0xFD
read_byte | (read_byte << 8) | (read_byte << 16) | -0x1000000
when 0xFE
read_byte | (read_byte << 8) | -0x10000
when 0xFF
read_byte | -0x100
else
signed = (b ^ 128) - 128
if b >= 128
signed + 5
else
signed - 5
end
end
end
No documentation available