|
PyObject *v = PyStructSequence_New((PyTypeObject *)StatVFSResultType); |
|
if (v == NULL) |
|
return NULL; |
|
|
|
#if !defined(HAVE_LARGEFILE_SUPPORT) |
|
PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long) st.f_bsize)); |
|
PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long) st.f_frsize)); |
|
PyStructSequence_SET_ITEM(v, 2, PyLong_FromLong((long) st.f_blocks)); |
|
PyStructSequence_SET_ITEM(v, 3, PyLong_FromLong((long) st.f_bfree)); |
|
PyStructSequence_SET_ITEM(v, 4, PyLong_FromLong((long) st.f_bavail)); |
|
PyStructSequence_SET_ITEM(v, 5, PyLong_FromLong((long) st.f_files)); |
|
PyStructSequence_SET_ITEM(v, 6, PyLong_FromLong((long) st.f_ffree)); |
|
PyStructSequence_SET_ITEM(v, 7, PyLong_FromLong((long) st.f_favail)); |
|
PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag)); |
|
PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax)); |
|
#else |
|
PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long) st.f_bsize)); |
|
PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long) st.f_frsize)); |
|
PyStructSequence_SET_ITEM(v, 2, |
|
PyLong_FromLongLong((long long) st.f_blocks)); |
|
PyStructSequence_SET_ITEM(v, 3, |
|
PyLong_FromLongLong((long long) st.f_bfree)); |
|
PyStructSequence_SET_ITEM(v, 4, |
|
PyLong_FromLongLong((long long) st.f_bavail)); |
|
PyStructSequence_SET_ITEM(v, 5, |
|
PyLong_FromLongLong((long long) st.f_files)); |
|
PyStructSequence_SET_ITEM(v, 6, |
|
PyLong_FromLongLong((long long) st.f_ffree)); |
|
PyStructSequence_SET_ITEM(v, 7, |
|
PyLong_FromLongLong((long long) st.f_favail)); |
|
PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag)); |
|
PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax)); |
|
#endif |
|
/* The _ALL_SOURCE feature test macro defines f_fsid as a structure |
|
* (issue #32390). */ |
|
#if defined(_AIX) && defined(_ALL_SOURCE) |
|
PyStructSequence_SET_ITEM(v, 10, PyLong_FromUnsignedLong(st.f_fsid.val[0])); |
|
#else |
|
PyStructSequence_SET_ITEM(v, 10, PyLong_FromUnsignedLong(st.f_fsid)); |
|
#endif |
|
if (PyErr_Occurred()) { |
|
Py_DECREF(v); |
|
return NULL; |
|
} |
|
|
|
return v; |
Bug report
Here the first possible error will be overwritten by the following ones:
cpython/Modules/posixmodule.c
Lines 12969 to 13014 in b4b4e76
Linked PRs
_pystatvfs_fromstructstatvfs#116542_pystatvfs_fromstructstatvfs(GH-116542) #116643_pystatvfs_fromstructstatvfs(GH-116542) #116644