Browse Source
bpo-41073: PyType_GetSlot() can now accept static types. (GH-21931)
bpo-41073: PyType_GetSlot() can now accept static types. (GH-21931)
PyType_GetSlot() can now accept static types. Co-Authored-By: Petr Viktorin <encukou@gmail.com> Automerge-Triggered-By: GH:encukoupull/23242/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 205 additions and 101 deletions
-
6Doc/c-api/type.rst
-
3Doc/whatsnew/3.10.rst
-
1Misc/NEWS.d/next/C API/2020-07-08-21-01-49.bpo-41073.VqQZON.rst
-
62Modules/_testcapimodule.c
-
48Objects/typeobject.c
-
162Objects/typeslots.inc
-
24Objects/typeslots.py
@ -0,0 +1 @@ |
|||
:c:func:`PyType_GetSlot()` can now accept static types. |
|||
@ -1,82 +1,82 @@ |
|||
/* Generated by typeslots.py */ |
|||
offsetof(PyHeapTypeObject, as_buffer.bf_getbuffer), |
|||
offsetof(PyHeapTypeObject, as_buffer.bf_releasebuffer), |
|||
offsetof(PyHeapTypeObject, as_mapping.mp_ass_subscript), |
|||
offsetof(PyHeapTypeObject, as_mapping.mp_length), |
|||
offsetof(PyHeapTypeObject, as_mapping.mp_subscript), |
|||
offsetof(PyHeapTypeObject, as_number.nb_absolute), |
|||
offsetof(PyHeapTypeObject, as_number.nb_add), |
|||
offsetof(PyHeapTypeObject, as_number.nb_and), |
|||
offsetof(PyHeapTypeObject, as_number.nb_bool), |
|||
offsetof(PyHeapTypeObject, as_number.nb_divmod), |
|||
offsetof(PyHeapTypeObject, as_number.nb_float), |
|||
offsetof(PyHeapTypeObject, as_number.nb_floor_divide), |
|||
offsetof(PyHeapTypeObject, as_number.nb_index), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_add), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_and), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_floor_divide), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_lshift), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_multiply), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_or), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_power), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_remainder), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_rshift), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_subtract), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_true_divide), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_xor), |
|||
offsetof(PyHeapTypeObject, as_number.nb_int), |
|||
offsetof(PyHeapTypeObject, as_number.nb_invert), |
|||
offsetof(PyHeapTypeObject, as_number.nb_lshift), |
|||
offsetof(PyHeapTypeObject, as_number.nb_multiply), |
|||
offsetof(PyHeapTypeObject, as_number.nb_negative), |
|||
offsetof(PyHeapTypeObject, as_number.nb_or), |
|||
offsetof(PyHeapTypeObject, as_number.nb_positive), |
|||
offsetof(PyHeapTypeObject, as_number.nb_power), |
|||
offsetof(PyHeapTypeObject, as_number.nb_remainder), |
|||
offsetof(PyHeapTypeObject, as_number.nb_rshift), |
|||
offsetof(PyHeapTypeObject, as_number.nb_subtract), |
|||
offsetof(PyHeapTypeObject, as_number.nb_true_divide), |
|||
offsetof(PyHeapTypeObject, as_number.nb_xor), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_ass_item), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_concat), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_contains), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_inplace_concat), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_inplace_repeat), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_item), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_length), |
|||
offsetof(PyHeapTypeObject, as_sequence.sq_repeat), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_alloc), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_base), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_bases), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_call), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_clear), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_dealloc), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_del), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_descr_get), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_descr_set), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_doc), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_getattr), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_getattro), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_hash), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_init), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_is_gc), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_iter), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_iternext), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_methods), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_new), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_repr), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_richcompare), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_setattr), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_setattro), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_str), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_traverse), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_members), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_getset), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_free), |
|||
offsetof(PyHeapTypeObject, as_number.nb_matrix_multiply), |
|||
offsetof(PyHeapTypeObject, as_number.nb_inplace_matrix_multiply), |
|||
offsetof(PyHeapTypeObject, as_async.am_await), |
|||
offsetof(PyHeapTypeObject, as_async.am_aiter), |
|||
offsetof(PyHeapTypeObject, as_async.am_anext), |
|||
offsetof(PyHeapTypeObject, ht_type.tp_finalize), |
|||
offsetof(PyHeapTypeObject, as_async.am_send), |
|||
{offsetof(PyBufferProcs, bf_getbuffer), offsetof(PyTypeObject, tp_as_buffer)}, |
|||
{offsetof(PyBufferProcs, bf_releasebuffer), offsetof(PyTypeObject, tp_as_buffer)}, |
|||
{offsetof(PyMappingMethods, mp_ass_subscript), offsetof(PyTypeObject, tp_as_mapping)}, |
|||
{offsetof(PyMappingMethods, mp_length), offsetof(PyTypeObject, tp_as_mapping)}, |
|||
{offsetof(PyMappingMethods, mp_subscript), offsetof(PyTypeObject, tp_as_mapping)}, |
|||
{offsetof(PyNumberMethods, nb_absolute), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_add), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_and), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_bool), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_divmod), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_float), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_floor_divide), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_index), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_add), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_and), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_floor_divide), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_lshift), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_multiply), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_or), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_power), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_remainder), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_rshift), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_subtract), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_true_divide), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_xor), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_int), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_invert), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_lshift), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_multiply), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_negative), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_or), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_positive), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_power), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_remainder), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_rshift), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_subtract), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_true_divide), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_xor), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PySequenceMethods, sq_ass_item), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_concat), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_contains), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_inplace_concat), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_inplace_repeat), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_item), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_length), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{offsetof(PySequenceMethods, sq_repeat), offsetof(PyTypeObject, tp_as_sequence)}, |
|||
{-1, offsetof(PyTypeObject, tp_alloc)}, |
|||
{-1, offsetof(PyTypeObject, tp_base)}, |
|||
{-1, offsetof(PyTypeObject, tp_bases)}, |
|||
{-1, offsetof(PyTypeObject, tp_call)}, |
|||
{-1, offsetof(PyTypeObject, tp_clear)}, |
|||
{-1, offsetof(PyTypeObject, tp_dealloc)}, |
|||
{-1, offsetof(PyTypeObject, tp_del)}, |
|||
{-1, offsetof(PyTypeObject, tp_descr_get)}, |
|||
{-1, offsetof(PyTypeObject, tp_descr_set)}, |
|||
{-1, offsetof(PyTypeObject, tp_doc)}, |
|||
{-1, offsetof(PyTypeObject, tp_getattr)}, |
|||
{-1, offsetof(PyTypeObject, tp_getattro)}, |
|||
{-1, offsetof(PyTypeObject, tp_hash)}, |
|||
{-1, offsetof(PyTypeObject, tp_init)}, |
|||
{-1, offsetof(PyTypeObject, tp_is_gc)}, |
|||
{-1, offsetof(PyTypeObject, tp_iter)}, |
|||
{-1, offsetof(PyTypeObject, tp_iternext)}, |
|||
{-1, offsetof(PyTypeObject, tp_methods)}, |
|||
{-1, offsetof(PyTypeObject, tp_new)}, |
|||
{-1, offsetof(PyTypeObject, tp_repr)}, |
|||
{-1, offsetof(PyTypeObject, tp_richcompare)}, |
|||
{-1, offsetof(PyTypeObject, tp_setattr)}, |
|||
{-1, offsetof(PyTypeObject, tp_setattro)}, |
|||
{-1, offsetof(PyTypeObject, tp_str)}, |
|||
{-1, offsetof(PyTypeObject, tp_traverse)}, |
|||
{-1, offsetof(PyTypeObject, tp_members)}, |
|||
{-1, offsetof(PyTypeObject, tp_getset)}, |
|||
{-1, offsetof(PyTypeObject, tp_free)}, |
|||
{offsetof(PyNumberMethods, nb_matrix_multiply), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyNumberMethods, nb_inplace_matrix_multiply), offsetof(PyTypeObject, tp_as_number)}, |
|||
{offsetof(PyAsyncMethods, am_await), offsetof(PyTypeObject, tp_as_async)}, |
|||
{offsetof(PyAsyncMethods, am_aiter), offsetof(PyTypeObject, tp_as_async)}, |
|||
{offsetof(PyAsyncMethods, am_anext), offsetof(PyTypeObject, tp_as_async)}, |
|||
{-1, offsetof(PyTypeObject, tp_finalize)}, |
|||
{offsetof(PyAsyncMethods, am_send), offsetof(PyTypeObject, tp_as_async)}, |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue