diff options
author | INADA Naoki <songofacandy@gmail.com> | 2017-01-06 17:44:43 +0900 |
---|---|---|
committer | INADA Naoki <songofacandy@gmail.com> | 2017-01-06 17:44:43 +0900 |
commit | b5437d71659a61eace2b850f3a4baf00c1ffe1d4 (patch) | |
tree | c8e2c035a3a9660e3736e67d176ead8bfd772d8b /Objects/bytearrayobject.c | |
parent | 2d51b381e706a9ceae98267383588bdd2b45cd45 (diff) | |
parent | 4a409ba347a7454d73db9802ab31f7fe17e5e6bc (diff) | |
download | cpython-b5437d71659a61eace2b850f3a4baf00c1ffe1d4.tar.gz |
Merge 3.6
Diffstat (limited to 'Objects/bytearrayobject.c')
-rw-r--r-- | Objects/bytearrayobject.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index 16b4fd7a90..693da5cc28 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -798,18 +798,22 @@ bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject *kwds) if (PyIndex_Check(arg)) { count = PyNumber_AsSsize_t(arg, PyExc_OverflowError); if (count == -1 && PyErr_Occurred()) { - return -1; - } - if (count < 0) { - PyErr_SetString(PyExc_ValueError, "negative count"); - return -1; + if (PyErr_ExceptionMatches(PyExc_OverflowError)) + return -1; + PyErr_Clear(); /* fall through */ } - if (count > 0) { - if (PyByteArray_Resize((PyObject *)self, count)) + else { + if (count < 0) { + PyErr_SetString(PyExc_ValueError, "negative count"); return -1; - memset(PyByteArray_AS_STRING(self), 0, count); + } + if (count > 0) { + if (PyByteArray_Resize((PyObject *)self, count)) + return -1; + memset(PyByteArray_AS_STRING(self), 0, count); + } + return 0; } - return 0; } /* Use the buffer API */ |