[pypy-commit] pypy remove-tuple-smm: Add a non-specialized code path to W_SpecialisedTupleObject's descr_eq().
Manuel Jacob
noreply at buildbot.pypy.org
Wed May 22 10:18:58 CEST 2013
Author: Manuel Jacob
Branch: remove-tuple-smm
Changeset: r64424:f9d3d3fb8ad9
Date: 2013-05-22 10:16 +0200
http://bitbucket.org/pypy/pypy/changeset/f9d3d3fb8ad9/
Log: Add a non-specialized code path to W_SpecialisedTupleObject's
descr_eq().
diff --git a/pypy/objspace/std/specialisedtupleobject.py b/pypy/objspace/std/specialisedtupleobject.py
--- a/pypy/objspace/std/specialisedtupleobject.py
+++ b/pypy/objspace/std/specialisedtupleobject.py
@@ -74,9 +74,23 @@
return space.wrap(intmask(x))
def descr_eq(self, space, w_other):
+ if not isinstance(w_other, W_AbstractTupleObject):
+ return space.w_NotImplementedError
if not isinstance(w_other, cls):
- # if we are not comparing same types, give up
- return space.w_NotImplemented
+ if nValues != w_other.length():
+ return space.w_False
+ for i in iter_n:
+ myval = getattr(self, 'value%s' % i)
+ otherval = w_other.getitem(space, i)
+ if typetuple[i] == object:
+ myval_wrapped = myval
+ else:
+ myval_wrapped = space.wrap(myval)
+ if not space.eq_w(myval_wrapped, otherval):
+ return space.w_False
+ else:
+ return space.w_True
+
for i in iter_n:
myval = getattr(self, 'value%s' % i)
otherval = getattr(w_other, 'value%s' % i)
More information about the pypy-commit
mailing list