diff options
author | doko <doko@ubuntu.com> | 2017-01-31 13:35:26 +0100 |
---|---|---|
committer | doko <doko@ubuntu.com> | 2017-01-31 13:35:26 +0100 |
commit | e0cb38ac4330d5e09b5e21c74c5d5e453af99a4f (patch) | |
tree | a64fe56edb37bb84d4ffea1990c0ac124a6dba9d /Objects/enumobject.c | |
parent | d7764ed2a9255ddb5bdb7d3f184610cdc7a66aad (diff) | |
parent | 602663ac0effc2e8e3b615141babd95ed7691dda (diff) | |
download | cpython-e0cb38ac4330d5e09b5e21c74c5d5e453af99a4f.tar.gz |
merge 3.5
Diffstat (limited to 'Objects/enumobject.c')
-rw-r--r-- | Objects/enumobject.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Objects/enumobject.c b/Objects/enumobject.c index c458cfe73d..dae166d5ad 100644 --- a/Objects/enumobject.c +++ b/Objects/enumobject.c @@ -250,6 +250,13 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return NULL; reversed_meth = _PyObject_LookupSpecial(seq, &PyId___reversed__); + if (reversed_meth == Py_None) { + Py_DECREF(reversed_meth); + PyErr_Format(PyExc_TypeError, + "'%.200s' object is not reversible", + Py_TYPE(seq)->tp_name); + return NULL; + } if (reversed_meth != NULL) { PyObject *res = PyObject_CallFunctionObjArgs(reversed_meth, NULL); Py_DECREF(reversed_meth); @@ -259,8 +266,9 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return NULL; if (!PySequence_Check(seq)) { - PyErr_SetString(PyExc_TypeError, - "argument to reversed() must be a sequence"); + PyErr_Format(PyExc_TypeError, + "'%.200s' object is not reversible", + Py_TYPE(seq)->tp_name); return NULL; } |