(Merge 3.4) Issue #25182: Fix compilation on Windows
This commit is contained in:
commit
ae86da9b20
|
@ -376,7 +376,7 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
|
||||||
PyObject *bytes = NULL;
|
PyObject *bytes = NULL;
|
||||||
char *str;
|
char *str;
|
||||||
Py_ssize_t n;
|
Py_ssize_t n;
|
||||||
int _errno;
|
int err;
|
||||||
|
|
||||||
if (self->fd < 0) {
|
if (self->fd < 0) {
|
||||||
/* fd might be invalid on Windows
|
/* fd might be invalid on Windows
|
||||||
|
@ -403,10 +403,13 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
n = _Py_write(self->fd, str, n);
|
n = _Py_write(self->fd, str, n);
|
||||||
_errno = errno;
|
/* save errno, it can be modified indirectly by Py_XDECREF() */
|
||||||
|
err = errno;
|
||||||
|
|
||||||
Py_XDECREF(bytes);
|
Py_XDECREF(bytes);
|
||||||
|
|
||||||
if (n == -1) {
|
if (n == -1) {
|
||||||
if (_errno == EAGAIN) {
|
if (err == EAGAIN) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue