Call PyBuffer_Release() if PyObject_GC_New() fails.
Fix also bytes_join(): only call Py_DECREF(item) after formatting the
error message which uses item.
drops the sequence's last reference to it. */
Py_INCREF(item);
if (PyObject_GetBuffer(item, &buffers[i], PyBUF_SIMPLE) != 0) {
- Py_DECREF(item);
PyErr_Format(PyExc_TypeError,
"sequence item %zd: expected a bytes-like object, "
"%.80s found",
i, Py_TYPE(item)->tp_name);
+ Py_DECREF(item);
goto error;
}
Py_DECREF(item);
wrapper = PyObject_GC_New(PyBufferWrapper, &_PyBufferWrapper_Type);
if (wrapper == NULL) {
+ PyBuffer_Release(buffer);
goto fail;
}
wrapper->mv = ret;