summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Modules/getpath.c
diff options
context:
space:
mode:
authorAlexSm <[email protected]>2024-02-16 11:51:30 +0100
committerGitHub <[email protected]>2024-02-16 11:51:30 +0100
commit506ecaee93b52cc12c2e2f97c3d42e3ca2a7f59e (patch)
treed096fb9eb988fbb0ca1ba970041773207ce3aa70 /contrib/tools/python3/src/Modules/getpath.c
parent4749b9e5d260714490997e6f5ee1ee8c1c8fc46c (diff)
parentf200f72c9d7a89c1018e3dc6b46c49fe2ecf84fb (diff)
Merge pull request #1940 from dcherednik/importlib
Library import 14
Diffstat (limited to 'contrib/tools/python3/src/Modules/getpath.c')
-rw-r--r--contrib/tools/python3/src/Modules/getpath.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/contrib/tools/python3/src/Modules/getpath.c b/contrib/tools/python3/src/Modules/getpath.c
index 46cad456953..bd6920cf068 100644
--- a/contrib/tools/python3/src/Modules/getpath.c
+++ b/contrib/tools/python3/src/Modules/getpath.c
@@ -126,8 +126,7 @@ getpath_isabs(PyObject *Py_UNUSED(self), PyObject *args)
r = _Py_isabs(path) ? Py_True : Py_False;
PyMem_Free((void *)path);
}
- Py_XINCREF(r);
- return r;
+ return Py_XNewRef(r);
}
@@ -154,11 +153,10 @@ getpath_hassuffix(PyObject *Py_UNUSED(self), PyObject *args)
wcscmp(&path[len - suffixLen], suffix) != 0
#endif
) {
- r = Py_False;
+ r = Py_NewRef(Py_False);
} else {
- r = Py_True;
+ r = Py_NewRef(Py_True);
}
- Py_INCREF(r);
PyMem_Free((void *)suffix);
}
PyMem_Free((void *)path);
@@ -188,8 +186,7 @@ getpath_isdir(PyObject *Py_UNUSED(self), PyObject *args)
#endif
PyMem_Free((void *)path);
}
- Py_XINCREF(r);
- return r;
+ return Py_XNewRef(r);
}
@@ -214,8 +211,7 @@ getpath_isfile(PyObject *Py_UNUSED(self), PyObject *args)
#endif
PyMem_Free((void *)path);
}
- Py_XINCREF(r);
- return r;
+ return Py_XNewRef(r);
}
@@ -232,12 +228,11 @@ getpath_isxfile(PyObject *Py_UNUSED(self), PyObject *args)
path = PyUnicode_AsWideCharString(pathobj, &cchPath);
if (path) {
#ifdef MS_WINDOWS
- const wchar_t *ext;
DWORD attr = GetFileAttributesW(path);
r = (attr != INVALID_FILE_ATTRIBUTES) &&
!(attr & FILE_ATTRIBUTE_DIRECTORY) &&
- SUCCEEDED(PathCchFindExtension(path, cchPath + 1, &ext)) &&
- (CompareStringOrdinal(ext, -1, L".exe", -1, 1 /* ignore case */) == CSTR_EQUAL)
+ (cchPath >= 4) &&
+ (CompareStringOrdinal(path + cchPath - 4, -1, L".exe", -1, 1 /* ignore case */) == CSTR_EQUAL)
? Py_True : Py_False;
#else
struct stat st;
@@ -248,8 +243,7 @@ getpath_isxfile(PyObject *Py_UNUSED(self), PyObject *args)
#endif
PyMem_Free((void *)path);
}
- Py_XINCREF(r);
- return r;
+ return Py_XNewRef(r);
}
@@ -493,8 +487,7 @@ done:
goto done;
}
if (!S_ISLNK(st.st_mode)) {
- Py_INCREF(pathobj);
- r = pathobj;
+ r = Py_NewRef(pathobj);
goto done;
}
wchar_t resolved[MAXPATHLEN+1];
@@ -509,8 +502,7 @@ done:
return r;
#endif
- Py_INCREF(pathobj);
- return pathobj;
+ return Py_NewRef(pathobj);
}
@@ -596,8 +588,7 @@ wchar_to_dict(PyObject *dict, const char *key, const wchar_t *s)
return 0;
}
} else {
- u = Py_None;
- Py_INCREF(u);
+ u = Py_NewRef(Py_None);
}
r = PyDict_SetItemString(dict, key, u) == 0;
Py_DECREF(u);
@@ -622,8 +613,7 @@ decode_to_dict(PyObject *dict, const char *key, const char *s)
return 0;
}
} else {
- u = Py_None;
- Py_INCREF(u);
+ u = Py_NewRef(Py_None);
}
r = PyDict_SetItemString(dict, key, u) == 0;
Py_DECREF(u);