diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2022-02-23 00:23:51 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-23 00:23:51 (GMT) |
commit | 1f455361ecfb1892e375bdbee813cdf095b6cfb8 (patch) | |
tree | d7def4d5d167965a45c4b0e30bb5a1a0bb5c3b4a /Modules/_io/_iomodule.c | |
parent | cff4d5c5d29528299ec1ac5b3b3a6f7735577c01 (diff) | |
download | cpython-1f455361ecfb1892e375bdbee813cdf095b6cfb8.zip cpython-1f455361ecfb1892e375bdbee813cdf095b6cfb8.tar.gz cpython-1f455361ecfb1892e375bdbee813cdf095b6cfb8.tar.bz2 |
bpo-46765: Replace Locally Cached Strings with Statically Initialized Objects (gh-31366)
https://bugs.python.org/issue46765
Diffstat (limited to 'Modules/_io/_iomodule.c')
-rw-r--r-- | Modules/_io/_iomodule.c | 114 |
1 files changed, 1 insertions, 113 deletions
diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c index 9ecc671..7f029f2 100644 --- a/Modules/_io/_iomodule.c +++ b/Modules/_io/_iomodule.c @@ -24,38 +24,6 @@ #include <windows.h> #endif -/* Various interned strings */ - -PyObject *_PyIO_str_close = NULL; -PyObject *_PyIO_str_closed = NULL; -PyObject *_PyIO_str_decode = NULL; -PyObject *_PyIO_str_encode = NULL; -PyObject *_PyIO_str_fileno = NULL; -PyObject *_PyIO_str_flush = NULL; -PyObject *_PyIO_str_getstate = NULL; -PyObject *_PyIO_str_isatty = NULL; -PyObject *_PyIO_str_locale = NULL; -PyObject *_PyIO_str_newlines = NULL; -PyObject *_PyIO_str_nl = NULL; -PyObject *_PyIO_str_peek = NULL; -PyObject *_PyIO_str_read = NULL; -PyObject *_PyIO_str_read1 = NULL; -PyObject *_PyIO_str_readable = NULL; -PyObject *_PyIO_str_readall = NULL; -PyObject *_PyIO_str_readinto = NULL; -PyObject *_PyIO_str_readline = NULL; -PyObject *_PyIO_str_reset = NULL; -PyObject *_PyIO_str_seek = NULL; -PyObject *_PyIO_str_seekable = NULL; -PyObject *_PyIO_str_setstate = NULL; -PyObject *_PyIO_str_tell = NULL; -PyObject *_PyIO_str_truncate = NULL; -PyObject *_PyIO_str_writable = NULL; -PyObject *_PyIO_str_write = NULL; - -PyObject *_PyIO_empty_str = NULL; -PyObject *_PyIO_empty_bytes = NULL; - PyDoc_STRVAR(module_doc, "The io module provides the Python interfaces to stream handling. The\n" "builtin open function is defined in this module.\n" @@ -511,8 +479,7 @@ _io_text_encoding_impl(PyObject *module, PyObject *encoding, int stacklevel) return NULL; } } - Py_INCREF(_PyIO_str_locale); - return _PyIO_str_locale; + return &_Py_ID(locale); } Py_INCREF(encoding); return encoding; @@ -699,41 +666,6 @@ _PyIO_Fini(void) PyTypeObject *exc = static_types[i]; _PyStaticType_Dealloc(exc); } - - /* Interned strings */ -#define CLEAR_INTERNED(name) \ - Py_CLEAR(_PyIO_str_ ## name) - - CLEAR_INTERNED(close); - CLEAR_INTERNED(closed); - CLEAR_INTERNED(decode); - CLEAR_INTERNED(encode); - CLEAR_INTERNED(fileno); - CLEAR_INTERNED(flush); - CLEAR_INTERNED(getstate); - CLEAR_INTERNED(isatty); - CLEAR_INTERNED(locale); - CLEAR_INTERNED(newlines); - CLEAR_INTERNED(peek); - CLEAR_INTERNED(read); - CLEAR_INTERNED(read1); - CLEAR_INTERNED(readable); - CLEAR_INTERNED(readall); - CLEAR_INTERNED(readinto); - CLEAR_INTERNED(readline); - CLEAR_INTERNED(reset); - CLEAR_INTERNED(seek); - CLEAR_INTERNED(seekable); - CLEAR_INTERNED(setstate); - CLEAR_INTERNED(tell); - CLEAR_INTERNED(truncate); - CLEAR_INTERNED(write); - CLEAR_INTERNED(writable); -#undef CLEAR_INTERNED - - Py_CLEAR(_PyIO_str_nl); - Py_CLEAR(_PyIO_empty_str); - Py_CLEAR(_PyIO_empty_bytes); } @@ -797,50 +729,6 @@ PyInit__io(void) } } - /* Interned strings */ -#define ADD_INTERNED(name) \ - if (!_PyIO_str_ ## name && \ - !(_PyIO_str_ ## name = PyUnicode_InternFromString(# name))) \ - goto fail; - - ADD_INTERNED(close) - ADD_INTERNED(closed) - ADD_INTERNED(decode) - ADD_INTERNED(encode) - ADD_INTERNED(fileno) - ADD_INTERNED(flush) - ADD_INTERNED(getstate) - ADD_INTERNED(isatty) - ADD_INTERNED(locale) - ADD_INTERNED(newlines) - ADD_INTERNED(peek) - ADD_INTERNED(read) - ADD_INTERNED(read1) - ADD_INTERNED(readable) - ADD_INTERNED(readall) - ADD_INTERNED(readinto) - ADD_INTERNED(readline) - ADD_INTERNED(reset) - ADD_INTERNED(seek) - ADD_INTERNED(seekable) - ADD_INTERNED(setstate) - ADD_INTERNED(tell) - ADD_INTERNED(truncate) - ADD_INTERNED(write) - ADD_INTERNED(writable) -#undef ADD_INTERNED - - if (!_PyIO_str_nl && - !(_PyIO_str_nl = PyUnicode_InternFromString("\n"))) - goto fail; - - if (!_PyIO_empty_str && - !(_PyIO_empty_str = PyUnicode_FromStringAndSize(NULL, 0))) - goto fail; - if (!_PyIO_empty_bytes && - !(_PyIO_empty_bytes = PyBytes_FromStringAndSize(NULL, 0))) - goto fail; - state->initialized = 1; return m; |