diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-11-25 13:53:19 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-11-25 13:53:19 (GMT) |
commit | bb6e4a0b31402f2e242f8f4be9a26e07d3dcc1b7 (patch) | |
tree | 552f1bdf983de7b8957bb65597c691c932d063db /Objects/bytesobject.c | |
parent | dde0815c359fc321b0e7a94f885132e2e77534a1 (diff) | |
parent | f9afda57ad7d0394531982b2c9de8301c5a54e45 (diff) | |
download | cpython-bb6e4a0b31402f2e242f8f4be9a26e07d3dcc1b7.zip cpython-bb6e4a0b31402f2e242f8f4be9a26e07d3dcc1b7.tar.gz cpython-bb6e4a0b31402f2e242f8f4be9a26e07d3dcc1b7.tar.bz2 |
Issue #24731: Fixed crash on converting objects with special methods
__bytes__, __trunc__, and __float__ returning instances of subclasses of
bytes, int, and float to subclasses of bytes, int, and float correspondingly.
Diffstat (limited to 'Objects/bytesobject.c')
-rw-r--r-- | Objects/bytesobject.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c index 6a9e062..cbdac86 100644 --- a/Objects/bytesobject.c +++ b/Objects/bytesobject.c @@ -3291,7 +3291,7 @@ static PyNumberMethods bytes_as_number = { }; static PyObject * -str_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds); +bytes_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds); static PyObject * bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwds) @@ -3306,7 +3306,7 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwds) _Py_IDENTIFIER(__bytes__); if (type != &PyBytes_Type) - return str_subtype_new(type, args, kwds); + return bytes_subtype_new(type, args, kwds); if (!PyArg_ParseTupleAndKeywords(args, kwds, "|Oss:bytes", kwlist, &x, &encoding, &errors)) return NULL; @@ -3556,7 +3556,7 @@ PyBytes_FromObject(PyObject *x) } static PyObject * -str_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +bytes_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { PyObject *tmp, *pnew; Py_ssize_t n; @@ -3565,7 +3565,7 @@ str_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) tmp = bytes_new(&PyBytes_Type, args, kwds); if (tmp == NULL) return NULL; - assert(PyBytes_CheckExact(tmp)); + assert(PyBytes_Check(tmp)); n = PyBytes_GET_SIZE(tmp); pnew = type->tp_alloc(type, n); if (pnew != NULL) { |