Author: Martin Matusiak <[email protected]>
Branch: py3.3
Changeset: r72642:239d45aea639
Date: 2014-07-29 20:58 +0200
http://bitbucket.org/pypy/pypy/changeset/239d45aea639/
Log: prefer use of __mro__ instead of recursing the inheritance hierarchy
diff --git a/pypy/objspace/std/objecttype.py b/pypy/objspace/std/objecttype.py
--- a/pypy/objspace/std/objecttype.py
+++ b/pypy/objspace/std/objecttype.py
@@ -27,16 +27,14 @@
Dict.update(klass.__dict__)
except AttributeError: pass
try:
- # XXX - Use of .__mro__ would be suggested, if the existance
- # of that attribute could be guarranted.
- bases = klass.__bases__
+ bases = klass.__mro__
except AttributeError: pass
else:
try:
#Note that since we are only interested in the keys,
# the order we merge classes is unimportant
for base in bases:
- Dict.update(_classdir(base))
+ Dict.update(base.__dict__)
except TypeError: pass
return Dict
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -738,16 +738,14 @@
Dict.update(klass.__dict__)
except AttributeError: pass
try:
- # XXX - Use of .__mro__ would be suggested, if the existance
- # of that attribute could be guarranted.
- bases = klass.__bases__
+ bases = klass.__mro__
except AttributeError: pass
else:
try:
#Note that since we are only interested in the keys,
# the order we merge classes is unimportant
for base in bases:
- Dict.update(_classdir(base))
+ Dict.update(base.__dict__)
except TypeError: pass
return Dict
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit