[pypy-svn] r57103 - pypy/branch/isinstance-refactor/pypy/module/__builtin__
arigo at codespeak.net
arigo at codespeak.net
Fri Aug 8 16:39:42 CEST 2008
Author: arigo
Date: Fri Aug 8 16:39:42 2008
New Revision: 57103
Modified:
pypy/branch/isinstance-refactor/pypy/module/__builtin__/interp_classobj.py
Log:
Minor performance improvement, possibly.
Modified: pypy/branch/isinstance-refactor/pypy/module/__builtin__/interp_classobj.py
==============================================================================
--- pypy/branch/isinstance-refactor/pypy/module/__builtin__/interp_classobj.py (original)
+++ pypy/branch/isinstance-refactor/pypy/module/__builtin__/interp_classobj.py Fri Aug 8 16:39:42 2008
@@ -325,11 +325,6 @@
def getattr(self, space, w_name, exc=True):
- name = space.str_w(w_name)
- if name == "__dict__":
- return self.w_dict
- elif name == "__class__":
- return self.w_class
w_result = space.finditem(self.w_dict, w_name)
if w_result is not None:
return w_result
@@ -339,7 +334,7 @@
raise OperationError(
space.w_AttributeError,
space.wrap("%s instance has no attribute %s" % (
- self.w_class.name, name)))
+ self.w_class.name, space.str_w(w_name))))
else:
return None
w_descr_get = space.lookup(w_value, '__get__')
@@ -348,7 +343,12 @@
return space.call_function(w_descr_get, w_value, self, self.w_class)
def descr_getattribute(self, space, w_attr):
- #import pdb; pdb.set_trace()
+ name = space.str_w(w_attr)
+ if len(name) >= 8 and name[0] == '_':
+ if name == "__dict__":
+ return self.w_dict
+ elif name == "__class__":
+ return self.w_class
try:
return self.getattr(space, w_attr)
except OperationError, e:
More information about the Pypy-commit
mailing list