posix_error_with_allocated_filename() decodes the filename with

PyUnicode_DecodeFSDefaultAndSize() and call
PyErr_SetFromErrnoWithFilenameObject() instead of
PyErr_SetFromErrnoWithFilename()
This commit is contained in:
Victor Stinner 2010-05-08 00:36:42 +00:00
parent 8d93e49a93
commit 77ccd6d0c7
1 changed files with 6 additions and 2 deletions

View File

@ -559,9 +559,13 @@ posix_error_with_unicode_filename(Py_UNICODE* name)
static PyObject * static PyObject *
posix_error_with_allocated_filename(PyObject* name) posix_error_with_allocated_filename(PyObject* name)
{ {
PyObject *rc = PyErr_SetFromErrnoWithFilename(PyExc_OSError, PyObject *name_str, *rc;
PyBytes_AsString(name)); name_str = PyUnicode_DecodeFSDefaultAndSize(PyBytes_AsString(name),
PyBytes_GET_SIZE(name));
Py_DECREF(name); Py_DECREF(name);
rc = PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError,
name_str);
Py_XDECREF(name_str);
return rc; return rc;
} }