[pypy-commit] pypy remove-remaining-smm: Integer unwrapping should be done with space.int_w(w_obj) instead of w_obj.intval, same for float. Thanks cfbolz for noticing.
Manuel Jacob
noreply at buildbot.pypy.org
Mon Feb 24 15:30:55 CET 2014
Author: Manuel Jacob
Branch: remove-remaining-smm
Changeset: r69355:5f0f8311bd7e
Date: 2014-02-24 15:30 +0100
http://bitbucket.org/pypy/pypy/changeset/5f0f8311bd7e/
Log: Integer unwrapping should be done with space.int_w(w_obj) instead of
w_obj.intval, same for float. Thanks cfbolz for noticing.
diff --git a/pypy/objspace/std/complexobject.py b/pypy/objspace/std/complexobject.py
--- a/pypy/objspace/std/complexobject.py
+++ b/pypy/objspace/std/complexobject.py
@@ -278,12 +278,12 @@
if isinstance(w_obj, W_ComplexObject):
return w_obj
if space.isinstance_w(w_obj, space.w_int):
- return W_ComplexObject(w_obj.intval, 0.0)
+ return W_ComplexObject(space.int_w(w_obj), 0.0)
if space.isinstance_w(w_obj, space.w_long):
dval = w_obj.tofloat(space)
return W_ComplexObject(dval, 0.0)
if space.isinstance_w(w_obj, space.w_float):
- return W_ComplexObject(w_obj.floatval, 0.0)
+ return W_ComplexObject(space.float_w(w_obj), 0.0)
@staticmethod
@unwrap_spec(w_real=WrappedDefault(0.0))
diff --git a/pypy/objspace/std/floatobject.py b/pypy/objspace/std/floatobject.py
--- a/pypy/objspace/std/floatobject.py
+++ b/pypy/objspace/std/floatobject.py
@@ -104,7 +104,7 @@
return space.newbool(op(self.floatval, w_other.floatval))
if space.isinstance_w(w_other, space.w_int):
f1 = self.floatval
- i2 = w_other.intval
+ i2 = space.int_w(w_other)
f2 = float(i2)
if LONG_BIT > 32 and int(f2) != i2:
res = do_compare_bigint(f1, rbigint.fromint(i2))
@@ -350,7 +350,7 @@
if isinstance(w_obj, W_FloatObject):
return w_obj
if space.isinstance_w(w_obj, space.w_int):
- return W_FloatObject(float(w_obj.intval))
+ return W_FloatObject(float(space.int_w(w_obj)))
if space.isinstance_w(w_obj, space.w_long):
return W_FloatObject(w_obj.tofloat(space))
More information about the pypy-commit
mailing list