diff options
author | Benjamin Peterson <benjamin@python.org> | 2011-05-23 23:17:55 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2011-05-23 23:17:55 (GMT) |
commit | 7f5cd45f1d756e9d749c87ebd62cdb7ad7299366 (patch) | |
tree | d74b80b008579afdcd4d5642f827f544bf9c6aac /Objects/object.c | |
parent | fd89af59e84b4c9032ac22e67e1b7b4fefbb601d (diff) | |
download | cpython-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.c | 8 |
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); |