From: Guido van Rossum Date: Tue, 28 Jan 2003 03:03:08 +0000 (+0000) Subject: Got rid of mdumps; I timed it, and struct.pack("= 0: + if object < 0xff: + self.write(BININT1 + chr(object)) + return + if object < 0xffff: + self.write(BININT2 + chr(object&0xff) + chr(object>>8)) + return + # Next check for 4-byte signed ints: high_bits = object >> 31 # note that Python shift sign-extends if high_bits == 0 or high_bits == -1: # All high bits are copies of bit 2**31, so the value # fits in a 4-byte signed int. - i = mdumps(object)[1:] - assert len(i) == 4 - if i[-2:] == '\000\000': # fits in 2-byte unsigned int - if i[-3] == '\000': # fits in 1-byte unsigned int - self.write(BININT1 + i[0]) - else: - self.write(BININT2 + i[:2]) - else: - self.write(BININT + i) + self.write(BININT + pack("