changeset: 98439:0eb26a4d5ffa branch: 3.5 parent: 98436:e8b6c6c433a4 parent: 98438:2652c1798f7d user: Victor Stinner date: Wed Sep 30 15:03:31 2015 +0200 files: Objects/fileobject.c description: (Merge 3.4) Issue #25182: Fix compilation on Windows diff -r e8b6c6c433a4 -r 0eb26a4d5ffa Objects/fileobject.c --- a/Objects/fileobject.c Wed Sep 30 15:50:32 2015 +0300 +++ b/Objects/fileobject.c Wed Sep 30 15:03:31 2015 +0200 @@ -376,7 +376,7 @@ PyObject *bytes = NULL; char *str; Py_ssize_t n; - int _errno; + int err; if (self->fd < 0) { /* fd might be invalid on Windows @@ -403,10 +403,13 @@ } n = _Py_write(self->fd, str, n); - _errno = errno; + /* save errno, it can be modified indirectly by Py_XDECREF() */ + err = errno; + Py_XDECREF(bytes); + if (n == -1) { - if (_errno == EAGAIN) { + if (err == EAGAIN) { PyErr_Clear(); Py_RETURN_NONE; }