From 651fc30af7ac6138764106b87632cabca56a98bb Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Tue, 16 Mar 2021 08:03:37 +0200 Subject: bpo-43499: Silence compiler warnings about using legacy C API on Windows (GH-24873) --- Modules/_ctypes/callproc.c | 3 +++ Modules/_io/fileio.c | 3 +++ Modules/posixmodule.c | 12 ++++++++++++ Objects/unicodeobject.c | 6 ++++++ PC/_msi.c | 3 +++ PC/winreg.c | 6 ++++++ Python/dynload_win.c | 3 +++ Python/fileutils.c | 6 ++++++ 8 files changed, 42 insertions(+) diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index f2506de..18984d1 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -1358,7 +1358,10 @@ static PyObject *load_library(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "U|i:LoadLibrary", &nameobj, &load_flags)) return NULL; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS name = _PyUnicode_AsUnicode(nameobj); +_Py_COMP_DIAG_POP if (!name) return NULL; diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c index caf91df..048484b 100644 --- a/Modules/_io/fileio.c +++ b/Modules/_io/fileio.c @@ -276,7 +276,10 @@ _io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode, if (!PyUnicode_FSDecoder(nameobj, &stringobj)) { return -1; } +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS widename = PyUnicode_AsUnicode(stringobj); +_Py_COMP_DIAG_POP if (widename == NULL) return -1; #else diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 5e33502..f83150f 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1159,7 +1159,10 @@ path_converter(PyObject *o, void *p) if (is_unicode) { #ifdef MS_WINDOWS +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wide = PyUnicode_AsUnicodeAndSize(o, &length); +_Py_COMP_DIAG_POP if (!wide) { goto error_exit; } @@ -1250,7 +1253,10 @@ path_converter(PyObject *o, void *p) goto error_exit; } +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wide = PyUnicode_AsUnicodeAndSize(wo, &length); +_Py_COMP_DIAG_POP if (!wide) { goto error_exit; } @@ -13238,7 +13244,10 @@ DirEntry_fetch_stat(PyObject *module, DirEntry *self, int follow_symlinks) #ifdef MS_WINDOWS if (!PyUnicode_FSDecoder(self->path, &ub)) return NULL; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS const wchar_t *path = PyUnicode_AsUnicode(ub); +_Py_COMP_DIAG_POP #else /* POSIX */ if (!PyUnicode_FSConverter(self->path, &ub)) return NULL; @@ -13460,7 +13469,10 @@ os_DirEntry_inode_impl(DirEntry *self) if (!PyUnicode_FSDecoder(self->path, &unicode)) return NULL; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS path = PyUnicode_AsUnicode(unicode); +_Py_COMP_DIAG_POP result = LSTAT(path, &stat); Py_DECREF(unicode); diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index ffd13f7..9cc04ee 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -4321,7 +4321,10 @@ unicode_decode_call_errorhandler_wchar( goto onError; } +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS repwstr = PyUnicode_AsUnicodeAndSize(repunicode, &repwlen); +_Py_COMP_DIAG_POP if (repwstr == NULL) goto onError; /* need more space? (at least enough for what we @@ -7654,7 +7657,10 @@ encode_code_page_strict(UINT code_page, PyObject **outbytes, substring = PyUnicode_Substring(unicode, offset, offset+len); if (substring == NULL) return -1; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS p = PyUnicode_AsUnicodeAndSize(substring, &size); +_Py_COMP_DIAG_POP if (p == NULL) { Py_DECREF(substring); return -1; diff --git a/PC/_msi.c b/PC/_msi.c index 58c1cfd..913d3b8 100644 --- a/PC/_msi.c +++ b/PC/_msi.c @@ -625,7 +625,10 @@ summary_setproperty(msiobj* si, PyObject *args) return NULL; if (PyUnicode_Check(data)) { +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS const WCHAR *value = _PyUnicode_AsUnicode(data); +_Py_COMP_DIAG_POP if (value == NULL) { return NULL; } diff --git a/PC/winreg.c b/PC/winreg.c index 1305b70..01e3e9f 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -646,7 +646,10 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize) t = PyList_GET_ITEM(value, j); if (!PyUnicode_Check(t)) return FALSE; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wstr = PyUnicode_AsUnicodeAndSize(t, &len); +_Py_COMP_DIAG_POP if (wstr == NULL) return FALSE; size += Py_SAFE_DOWNCAST((len + 1) * sizeof(wchar_t), @@ -669,7 +672,10 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize) Py_ssize_t len; t = PyList_GET_ITEM(value, j); +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wstr = PyUnicode_AsUnicodeAndSize(t, &len); +_Py_COMP_DIAG_POP assert(wstr); wcscpy(P, wstr); P += (len + 1); diff --git a/Python/dynload_win.c b/Python/dynload_win.c index 8431c5b..81787e5 100644 --- a/Python/dynload_win.c +++ b/Python/dynload_win.c @@ -170,7 +170,10 @@ dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix, _Py_CheckPython3(); +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wpathname = _PyUnicode_AsUnicode(pathname); +_Py_COMP_DIAG_POP if (wpathname == NULL) return NULL; diff --git a/Python/fileutils.c b/Python/fileutils.c index ddc0909..cf11e92 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -1010,7 +1010,10 @@ _Py_stat(PyObject *path, struct stat *statbuf) struct _stat wstatbuf; const wchar_t *wpath; +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wpath = _PyUnicode_AsUnicode(path); +_Py_COMP_DIAG_POP if (wpath == NULL) return -2; @@ -1455,7 +1458,10 @@ _Py_fopen_obj(PyObject *path, const char *mode) Py_TYPE(path)); return NULL; } +_Py_COMP_DIAG_PUSH +_Py_COMP_DIAG_IGNORE_DEPR_DECLS wpath = _PyUnicode_AsUnicode(path); +_Py_COMP_DIAG_POP if (wpath == NULL) return NULL; -- cgit v0.12