bpo-46131: add fastpath for PyFloat_Check() (#30200)

This commit is contained in:
Matti Picus 2021-12-19 22:24:30 +02:00 committed by GitHub
parent aeb9ef4c72
commit 2ef06d4125
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 0 deletions

View file

@ -1959,6 +1959,7 @@ PyTypeObject PyFloat_Type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
Py_TPFLAGS_FLOAT_SUBCLASS |
_Py_TPFLAGS_MATCH_SELF, /* tp_flags */
float_new__doc__, /* tp_doc */
0, /* tp_traverse */

View file

@ -5783,6 +5783,9 @@ inherit_special(PyTypeObject *type, PyTypeObject *base)
else if (PyType_IsSubtype(base, &PyDict_Type)) {
type->tp_flags |= Py_TPFLAGS_DICT_SUBCLASS;
}
else if (PyType_IsSubtype(base, &PyFloat_Type)) {
type->tp_flags |= Py_TPFLAGS_FLOAT_SUBCLASS;
}
if (PyType_HasFeature(base, _Py_TPFLAGS_MATCH_SELF)) {
type->tp_flags |= _Py_TPFLAGS_MATCH_SELF;
}