[pypy-commit] pypy default: an attempt to make it faster to compute inequality of some stuff
fijal
noreply at buildbot.pypy.org
Thu Oct 24 11:23:42 CEST 2013
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch:
Changeset: r67555:72c1e31475e9
Date: 2013-10-23 14:28 +0200
http://bitbucket.org/pypy/pypy/changeset/72c1e31475e9/
Log: an attempt to make it faster to compute inequality of some stuff
diff --git a/rpython/rtyper/lltypesystem/lltype.py b/rpython/rtyper/lltypesystem/lltype.py
--- a/rpython/rtyper/lltypesystem/lltype.py
+++ b/rpython/rtyper/lltypesystem/lltype.py
@@ -97,8 +97,13 @@
def __eq__(self, other):
if isinstance(other, Typedef):
return other.__eq__(self)
- return self.__class__ is other.__class__ and (
- self is other or safe_equal(self.__dict__, other.__dict__))
+ if self.__class__ is other.__class__:
+ if self is other:
+ return True
+ if hash(self) != hash(other):
+ return False
+ return safe_equal(self.__dict__, other.__dict__)
+ return False
def __ne__(self, other):
return not (self == other)
@@ -227,6 +232,9 @@
self.OF = OF
self.c_name = c_name
+ def __hash__(self):
+ return hash(self.OF)
+
def __repr__(self):
return '<Typedef "%s" of %r>' % (self.c_name, self.OF)
More information about the pypy-commit
mailing list