summaryrefslogtreecommitdiffstats
path: root/Lib/pickletools.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/pickletools.py')
-rw-r--r--Lib/pickletools.py7
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