[pypy-commit] pypy disable_merge_different_int_types: (cfbolz, bivab): unsigned fixes for rbigint
bivab
noreply at buildbot.pypy.org
Mon Nov 28 15:55:43 CET 2011
Author: David Schneider <david.schneider at picle.org>
Branch: disable_merge_different_int_types
Changeset: r49904:02debe3a5ebc
Date: 2011-11-25 12:41 +0100
http://bitbucket.org/pypy/pypy/changeset/02debe3a5ebc/
Log: (cfbolz, bivab): unsigned fixes for rbigint
diff --git a/pypy/rlib/rbigint.py b/pypy/rlib/rbigint.py
--- a/pypy/rlib/rbigint.py
+++ b/pypy/rlib/rbigint.py
@@ -229,7 +229,7 @@
sign = self.sign
if intmask(x) < 0 and (sign > 0 or (x << 1) != 0):
raise OverflowError
- return intmask(x * sign)
+ return intmask(intmask(x) * sign)
def tolonglong(self):
return _AsLongLong(self)
@@ -1384,7 +1384,7 @@
# Now remove the excess 2 bits, rounding to nearest integer (with
# ties rounded to even).
- q = (q >> 2) + (bool(q & 2) and bool(q & 5))
+ q = (q >> 2) + r_uint((bool(q & 2) and bool(q & 5)))
if exp > DBL_MAX_EXP or (exp == DBL_MAX_EXP and
q == r_ulonglong(1) << DBL_MANT_DIG):
@@ -1833,8 +1833,8 @@
if x < v.udigit(i):
x += 1
i -= 1
- x = intmask(x * sign)
- return x
+ res = intmask(intmask(x) * sign)
+ return res
#_________________________________________________________________
More information about the pypy-commit
mailing list