diff options
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r-- | Modules/posixmodule.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 23552bea4c..9ccdc8eff1 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1456,13 +1456,19 @@ win32_error_object(const char* function, PyObject* filename) #endif /* MS_WINDOWS */ static PyObject * +posix_path_object_error(PyObject *path) +{ + return PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path); +} + +static PyObject * path_object_error(PyObject *path) { #ifdef MS_WINDOWS return PyErr_SetExcFromWindowsErrWithFilenameObject( PyExc_OSError, 0, path); #else - return PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path); + return posix_path_object_error(path); #endif } @@ -1484,6 +1490,12 @@ path_error(path_t *path) } static PyObject * +posix_path_error(path_t *path) +{ + return posix_path_object_error(path->object); +} + +static PyObject * path_error2(path_t *path, path_t *path2) { return path_object_error2(path->object, path2->object); @@ -5141,7 +5153,7 @@ os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env) /* If we get here it's definitely an error */ - path_error(path); + posix_path_error(path); free_string_array(envlist, envc); fail: @@ -9477,7 +9489,7 @@ os_truncate_impl(PyObject *module, path_t *path, Py_off_t length) _Py_END_SUPPRESS_IPH Py_END_ALLOW_THREADS if (result < 0) - return path_error(path); + return posix_path_error(path); Py_RETURN_NONE; } |