gh-94673: Add _PyStaticType_InitBuiltin() (#95152)

This is the first of several precursors to storing tp_subclasses (and tp_weaklist) on the interpreter state for static builtin types.

We do the following:

* add `_PyStaticType_InitBuiltin()`
* add `_Py_TPFLAGS_STATIC_BUILTIN`
* set it on all static builtin types in `_PyStaticType_InitBuiltin()`
* shuffle some code around to be able to use _PyStaticType_InitBuiltin()
    * rename `_PyStructSequence_InitType()` to `_PyStructSequence_InitBuiltinWithFlags()`
    * add `_PyStructSequence_InitBuiltin()`.
This commit is contained in:
Eric Snow 2022-07-25 12:47:31 -06:00 committed by GitHub
parent c5140945c7
commit 4a1dd73431
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 137 additions and 80 deletions

View file

@ -14604,13 +14604,13 @@ _PyUnicode_InitTypes(PyInterpreterState *interp)
return _PyStatus_OK();
}
if (PyType_Ready(&EncodingMapType) < 0) {
if (_PyStaticType_InitBuiltin(&EncodingMapType) < 0) {
goto error;
}
if (PyType_Ready(&PyFieldNameIter_Type) < 0) {
if (_PyStaticType_InitBuiltin(&PyFieldNameIter_Type) < 0) {
goto error;
}
if (PyType_Ready(&PyFormatterIter_Type) < 0) {
if (_PyStaticType_InitBuiltin(&PyFormatterIter_Type) < 0) {
goto error;
}
return _PyStatus_OK();