MCPcopy Create free account
hub / github.com/e2wugui/zeze / read_long

Method read_long

python/zeze/buffer.py:722–752  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

720 return struct.unpack_from(">q", buf, ri)[0]
721
722 def read_long(self):
723 self.ensure_read(1)
724 ri = self.ri
725 self.ri = ri + 1
726 b = self.buf[ri]
727 h = b >> 3
728 # @formatter:off
729 if h < 0x10:
730 if h < 0x08: return b
731 if h < 0x0c: return ((b - 0x40) << 8) + self.read_long1()
732 if h < 0x0e: return ((b - 0x60) << 16) + self.read_long2_be()
733 if h == 0x0e: return ((b - 0x70) << 24) + self.read_long3_be()
734 h = b & 7
735 if h < 4: return ((b - 0x78) << 32) + self.read_long4_be()
736 if h < 6: return ((b - 0x7c) << 40) + self.read_long5_be()
737 if h == 6: return self.read_long6_be()
738 r = self.read_long7_be()
739 return r if r < 0x80_0000_0000_0000 else ((r - 0x80_0000_0000_0000) << 8) + self.read_long1()
740 else:
741 b -= 0x100
742 if h >= 0x18: return b
743 if h >= 0x14: return ((b + 0x40) << 8) + self.read_long1()
744 if h >= 0x12: return ((b + 0x60) << 16) + self.read_long2_be()
745 if h == 0x11: return ((b + 0x70) << 24) + self.read_long3_be()
746 h = b & 7
747 if h >= 4: return ((b + 0x78) << 32) + self.read_long4_be()
748 if h >= 2: return ((b + 0x7c) << 40) + self.read_long5_be()
749 if h == 1: return -0x1_0000_0000_0000 + self.read_long6_be()
750 r = self.read_long7_be()
751 return -0x100_0000_0000_0000 + r if r >= 0x80_0000_0000_0000 else ((r - 0x80_0000_0000_0000) << 8) + self.read_long1()
752 # @formatter:on
753
754 def skip_long(self):
755 self.ensure_read(1)

Callers 15

read_boolMethod · 0.95
read_intMethod · 0.95
read_bool_tagMethod · 0.95
read_long_tagMethod · 0.95
read_float_tagMethod · 0.95
read_double_tagMethod · 0.95
read_vector2_tagMethod · 0.95
read_vector3_tagMethod · 0.95
read_vector4_tagMethod · 0.95
read_quaternion_tagMethod · 0.95
read_vector2int_tagMethod · 0.95
read_vector3int_tagMethod · 0.95

Calls 8

ensure_readMethod · 0.95
read_long1Method · 0.95
read_long2_beMethod · 0.95
read_long3_beMethod · 0.95
read_long4_beMethod · 0.95
read_long5_beMethod · 0.95
read_long6_beMethod · 0.95
read_long7_beMethod · 0.95

Tested by 3

test_longMethod · 0.76
check_longMethod · 0.76
check_skip_longMethod · 0.76