diff options
Diffstat (limited to 'Lib/pickletools.py')
-rw-r--r-- | Lib/pickletools.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Lib/pickletools.py b/Lib/pickletools.py index 5c0367b..dec533d 100644 --- a/Lib/pickletools.py +++ b/Lib/pickletools.py @@ -590,14 +590,17 @@ def decode_long(data): -256L >>> decode_long("\x00\x80") -32768L - >>> + >>> decode_long("\x80") + -128L + >>> decode_long("\x7f") + 127L """ x = 0L i = 0L for c in data: x |= long(ord(c)) << i i += 8L - if i and (x & (1L << (i-1L))): + if data and ord(c) >= 0x80: x -= 1L << i return x |