diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2018-01-25 10:49:40 +0200 |
---|---|---|
committer | INADA Naoki <methane@users.noreply.github.com> | 2018-01-25 17:49:40 +0900 |
commit | f320be77ffb73e3b9e7fc98c37b8df3975d84b40 (patch) | |
tree | 552338f0200938249233fa4aa7b00add61965337 /Modules/_collectionsmodule.c | |
parent | 2b822a0bb1de2612c85d8f75e3ce89eda2ac9f68 (diff) | |
download | cpython-git-f320be77ffb73e3b9e7fc98c37b8df3975d84b40.tar.gz |
bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222)
Add two new private APIs: _PyObject_LookupAttr() and _PyObject_LookupAttrId()
Diffstat (limited to 'Modules/_collectionsmodule.c')
-rw-r--r-- | Modules/_collectionsmodule.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index 222cace5af..5753dd946a 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -1339,12 +1339,10 @@ deque_reduce(dequeobject *deque) PyObject *dict, *it; _Py_IDENTIFIER(__dict__); - dict = _PyObject_GetAttrId((PyObject *)deque, &PyId___dict__); + if (_PyObject_LookupAttrId((PyObject *)deque, &PyId___dict__, &dict) < 0) { + return NULL; + } if (dict == NULL) { - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { - return NULL; - } - PyErr_Clear(); dict = Py_None; Py_INCREF(dict); } |