mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
gh-90111: Minor Cleanup for Runtime-Global Objects (gh-100254)
* move _PyRuntime.global_objects.interned to _PyRuntime.cached_objects.interned_strings (and use _Py_CACHED_OBJECT()) * rename _PyRuntime.global_objects to _PyRuntime.static_objects (This also relates to gh-96075.) https://github.com/python/cpython/issues/90111
This commit is contained in:
parent
9663853800
commit
aa8591e9ca
4 changed files with 8 additions and 8 deletions
|
@ -28,14 +28,16 @@ extern "C" {
|
||||||
|
|
||||||
struct _Py_cached_objects {
|
struct _Py_cached_objects {
|
||||||
PyObject *str_replace_inf;
|
PyObject *str_replace_inf;
|
||||||
|
|
||||||
|
PyObject *interned_strings;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define _Py_GLOBAL_OBJECT(NAME) \
|
#define _Py_GLOBAL_OBJECT(NAME) \
|
||||||
_PyRuntime.global_objects.NAME
|
_PyRuntime.static_objects.NAME
|
||||||
#define _Py_SINGLETON(NAME) \
|
#define _Py_SINGLETON(NAME) \
|
||||||
_Py_GLOBAL_OBJECT(singletons.NAME)
|
_Py_GLOBAL_OBJECT(singletons.NAME)
|
||||||
|
|
||||||
struct _Py_global_objects {
|
struct _Py_static_objects {
|
||||||
struct {
|
struct {
|
||||||
/* Small integers are preallocated in this array so that they
|
/* Small integers are preallocated in this array so that they
|
||||||
* can be shared.
|
* can be shared.
|
||||||
|
@ -59,8 +61,6 @@ struct _Py_global_objects {
|
||||||
PyHamtNode_Bitmap hamt_bitmap_node_empty;
|
PyHamtNode_Bitmap hamt_bitmap_node_empty;
|
||||||
_PyContextTokenMissing context_token_missing;
|
_PyContextTokenMissing context_token_missing;
|
||||||
} singletons;
|
} singletons;
|
||||||
|
|
||||||
PyObject *interned;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define _Py_INTERP_CACHED_OBJECT(interp, NAME) \
|
#define _Py_INTERP_CACHED_OBJECT(interp, NAME) \
|
||||||
|
|
|
@ -163,7 +163,7 @@ typedef struct pyruntimestate {
|
||||||
|
|
||||||
/* All the objects that are shared by the runtime's interpreters. */
|
/* All the objects that are shared by the runtime's interpreters. */
|
||||||
struct _Py_cached_objects cached_objects;
|
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 following fields are here to avoid allocation during init.
|
||||||
The data is exposed through _PyRuntimeState pointer fields.
|
The data is exposed through _PyRuntimeState pointer fields.
|
||||||
|
|
|
@ -70,7 +70,7 @@ extern "C" {
|
||||||
.types = { \
|
.types = { \
|
||||||
.next_version_tag = 1, \
|
.next_version_tag = 1, \
|
||||||
}, \
|
}, \
|
||||||
.global_objects = { \
|
.static_objects = { \
|
||||||
.singletons = { \
|
.singletons = { \
|
||||||
.small_ints = _Py_small_ints_INIT, \
|
.small_ints = _Py_small_ints_INIT, \
|
||||||
.bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \
|
.bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \
|
||||||
|
|
|
@ -233,12 +233,12 @@ static inline PyObject* unicode_new_empty(void)
|
||||||
*/
|
*/
|
||||||
static inline PyObject *get_interned_dict(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)
|
static inline void set_interned_dict(PyObject *dict)
|
||||||
{
|
{
|
||||||
_PyRuntime.global_objects.interned = dict;
|
_Py_CACHED_OBJECT(interned_strings) = dict;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define _Py_RETURN_UNICODE_EMPTY() \
|
#define _Py_RETURN_UNICODE_EMPTY() \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue