aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
authorErlend E. Aasland <erlend.aasland@protonmail.com>2023-02-15 14:07:59 +0100
committerGitHub <noreply@github.com>2023-02-15 05:07:59 -0800
commiteb0c485b6c836abb71932537a5058344d11d7bc8 (patch)
tree6b456f13178753f7af386fb769c5d232e0180fa7 /Python/pylifecycle.c
parentc7766245c14fa03b8afd3aff9be30b13d0069f95 (diff)
downloadcpython-eb0c485b6c836abb71932537a5058344d11d7bc8.tar.gz
cpython-eb0c485b6c836abb71932537a5058344d11d7bc8.zip
gh-101819: Remove _PyWindowsConsoleIO_Type from the Windows DLL (GH-101904)
Automerge-Triggered-By: GH:erlend-aasland
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r--Python/pylifecycle.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index a8a8e7f3d84..045a2996e89 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -54,10 +54,6 @@ extern void _PyIO_Fini(void);
#ifdef MS_WINDOWS
# undef BYTE
-
- extern PyTypeObject PyWindowsConsoleIO_Type;
-# define PyWindowsConsoleIO_Check(op) \
- (PyObject_TypeCheck((op), &PyWindowsConsoleIO_Type))
#endif
#define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str))
@@ -2358,8 +2354,16 @@ create_stdio(const PyConfig *config, PyObject* io,
#ifdef MS_WINDOWS
/* Windows console IO is always UTF-8 encoded */
- if (PyWindowsConsoleIO_Check(raw))
+ PyTypeObject *winconsoleio_type = (PyTypeObject *)_PyImport_GetModuleAttr(
+ &_Py_ID(_io), &_Py_ID(_WindowsConsoleIO));
+ if (winconsoleio_type == NULL) {
+ goto error;
+ }
+ int is_subclass = PyObject_TypeCheck(raw, winconsoleio_type);
+ Py_DECREF(winconsoleio_type);
+ if (is_subclass) {
encoding = L"utf-8";
+ }
#endif
text = PyUnicode_FromString(name);