| 752 | # @formatter:on |
| 753 | |
| 754 | def skip_long(self): |
| 755 | self.ensure_read(1) |
| 756 | ri = self.ri |
| 757 | self.ri = ri + 1 |
| 758 | b = self.buf[ri] |
| 759 | h = b >> 3 |
| 760 | # @formatter:off |
| 761 | if h < 0x10: |
| 762 | if h < 0x08: return |
| 763 | if h < 0x0c: self.skip(1); return |
| 764 | if h < 0x0e: self.skip(2); return |
| 765 | if h == 0x0e: self.skip(3); return |
| 766 | h = b & 7 |
| 767 | if h < 4: self.skip(4); return |
| 768 | if h < 6: self.skip(5); return |
| 769 | if h == 6: self.skip(6); return |
| 770 | self.ensure_read(1) |
| 771 | self.ri = ri + 2 |
| 772 | self.skip(6 + (self.buf[ri + 1] > 0x7f)) |
| 773 | return |
| 774 | else: |
| 775 | b -= 0x100 |
| 776 | if h >= 0x18: return |
| 777 | if h >= 0x14: self.skip(1); return |
| 778 | if h >= 0x12: self.skip(2); return |
| 779 | if h == 0x11: self.skip(3); return |
| 780 | h = b & 7 |
| 781 | if h >= 4: self.skip(4); return |
| 782 | if h >= 2: self.skip(5); return |
| 783 | if h == 1: self.skip(6); return |
| 784 | self.ensure_read(1) |
| 785 | self.ri = ri + 2 |
| 786 | self.skip(7 - (self.buf[ri + 1] > 0x7f)) |
| 787 | # @formatter:on |
| 788 | |
| 789 | def write_int(self, v): |
| 790 | self.write_long(v) |