From: Tim Peters <tim.peters@gmail.com>
Date: Mon, 27 Jan 2003 23:51:11 +0000 (+0000)
Subject: decode_long():  Simplified the "is it negative?" test.
X-Git-Tag: v2.3c1~2275
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=217e571a19c9d643005d8c8d88abab16f88735a2;p=python

decode_long():  Simplified the "is it negative?" test.
---

diff --git a/Lib/pickletools.py b/Lib/pickletools.py
index 5c0367be0f..dec533d492 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