summaryrefslogtreecommitdiffstats
path: root/Objects/object.c
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2011-05-23 23:17:55 (GMT)
committerBenjamin Peterson <benjamin@python.org>2011-05-23 23:17:55 (GMT)
commit7f5cd45f1d756e9d749c87ebd62cdb7ad7299366 (patch)
treed74b80b008579afdcd4d5642f827f544bf9c6aac /Objects/object.c
parentfd89af59e84b4c9032ac22e67e1b7b4fefbb601d (diff)
downloadcpython-7f5cd45f1d756e9d749c87ebd62cdb7ad7299366.zip
cpython-7f5cd45f1d756e9d749c87ebd62cdb7ad7299366.tar.gz
cpython-7f5cd45f1d756e9d749c87ebd62cdb7ad7299366.tar.bz2
must clear an AttributeError if it is set
Diffstat (limited to 'Objects/object.c')
-rw-r--r--Objects/object.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Objects/object.c b/Objects/object.c
index 5cf15b6..94a18d3 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -1911,8 +1911,12 @@ _dir_object(PyObject *obj)
assert(obj);
if (PyInstance_Check(obj)) {
dirfunc = PyObject_GetAttrString(obj, "__dir__");
- if (dirfunc == NULL && !PyErr_ExceptionMatches(PyExc_AttributeError))
- return NULL;
+ if (dirfunc == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_AttributeError))
+ PyErr_Clear();
+ else
+ return NULL;
+ }
}
else {
dirfunc = _PyObject_LookupSpecial(obj, "__dir__", &dir_str);