Author: Martin Matusiak <numero...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit