int group_right_1, Py_buffer *buffer)
/*[clinic end generated code: output=49b16e6406023734 input=80ed30436df01a71]*/
{
- PyObject *dest = NULL;
+ PyBytesWriter *writer = NULL;
char *mem;
size_t count = 0;
int retval;
}
if (!group_right_1) {
- dest = PyBytes_FromStringAndSize(NULL, len);
- if (dest == NULL)
- goto error;
if (len == 0) {
Py_XDECREF(sock);
- return dest;
+ return Py_GetConstant(Py_CONSTANT_EMPTY_BYTES);
+ }
+
+ writer = PyBytesWriter_Create(len);
+ if (writer == NULL) {
+ goto error;
}
- mem = PyBytes_AS_STRING(dest);
+ mem = PyBytesWriter_GetData(writer);
}
else {
mem = buffer->buf;
done:
Py_XDECREF(sock);
if (!group_right_1) {
- _PyBytes_Resize(&dest, count);
- return dest;
+ return PyBytesWriter_FinishWithSize(writer, count);
}
else {
return PyLong_FromSize_t(count);
error:
PySSL_ChainExceptions(self);
Py_XDECREF(sock);
- if (!group_right_1)
- Py_XDECREF(dest);
+ if (!group_right_1) {
+ PyBytesWriter_Discard(writer);
+ }
return NULL;
}