diff --git a/Include/internal/pycore_global_objects.h b/Include/internal/pycore_global_objects.h index 80f6bb2c8a7c16..d0461fa7e82e8b 100644 --- a/Include/internal/pycore_global_objects.h +++ b/Include/internal/pycore_global_objects.h @@ -28,14 +28,16 @@ extern "C" { struct _Py_cached_objects { PyObject *str_replace_inf; + + PyObject *interned_strings; }; #define _Py_GLOBAL_OBJECT(NAME) \ - _PyRuntime.global_objects.NAME + _PyRuntime.static_objects.NAME #define _Py_SINGLETON(NAME) \ _Py_GLOBAL_OBJECT(singletons.NAME) -struct _Py_global_objects { +struct _Py_static_objects { struct { /* Small integers are preallocated in this array so that they * can be shared. @@ -59,8 +61,6 @@ struct _Py_global_objects { PyHamtNode_Bitmap hamt_bitmap_node_empty; _PyContextTokenMissing context_token_missing; } singletons; - - PyObject *interned; }; #define _Py_INTERP_CACHED_OBJECT(interp, NAME) \ diff --git a/Include/internal/pycore_runtime.h b/Include/internal/pycore_runtime.h index 92ed45956c99b3..d100e836c7d153 100644 --- a/Include/internal/pycore_runtime.h +++ b/Include/internal/pycore_runtime.h @@ -163,7 +163,7 @@ typedef struct pyruntimestate { /* All the objects that are shared by the runtime's interpreters. */ struct _Py_cached_objects cached_objects; - struct _Py_global_objects global_objects; + struct _Py_static_objects static_objects; /* The following fields are here to avoid allocation during init. The data is exposed through _PyRuntimeState pointer fields. diff --git a/Include/internal/pycore_runtime_init.h b/Include/internal/pycore_runtime_init.h index 1431096e2d24ba..6342a28f4df911 100644 --- a/Include/internal/pycore_runtime_init.h +++ b/Include/internal/pycore_runtime_init.h @@ -70,7 +70,7 @@ extern "C" { .types = { \ .next_version_tag = 1, \ }, \ - .global_objects = { \ + .static_objects = { \ .singletons = { \ .small_ints = _Py_small_ints_INIT, \ .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index b721ccd805edf1..f0c7aa7707fdb5 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -233,12 +233,12 @@ static inline PyObject* unicode_new_empty(void) */ static inline PyObject *get_interned_dict(void) { - return _PyRuntime.global_objects.interned; + return _Py_CACHED_OBJECT(interned_strings); } static inline void set_interned_dict(PyObject *dict) { - _PyRuntime.global_objects.interned = dict; + _Py_CACHED_OBJECT(interned_strings) = dict; } #define _Py_RETURN_UNICODE_EMPTY() \