# File lib/innodb/util/buffer_cursor.rb, line 331 def get_ic_uint32(flag=nil) name("ic_uint32") { if !flag flag = peek { name("uint8_or_flag") { get_uint8 } } end case when flag < 0x80 adjust(+1) flag when flag < 0xc0 name("uint16") { get_uint16 } & 0x7fff when flag < 0xe0 name("uint24") { get_uint24 } & 0x3fffff when flag < 0xf0 name("uint32") { get_uint32 } & 0x1fffffff when flag == 0xf0 adjust(+1) # Skip the flag byte. name("uint32+1") { get_uint32 } else raise "Invalid flag #{flag.to_s} seen" end } end