If a slot ID is repeated in PyType_Spec, the current PyType_FromSpec implementation happens to usually use the last one and ignore earlier ones, but:
if Py_tp_doc is repeated, PyType_FromSpec may leak memory, and
if Py_tp_members is repeated, PyType_FromSpec may memcpy unintialized memory (if slot specifies fewer members than the last one).
We chould:
clarify in the docs that repeated slot IDs are not supported
raise an exception for duplicate slots (at least when it's easy to detect, as in the cases above)
Alternatively, we could formalize that the last slot of a given ID “wins” and fix the leak/mem issue, but I don't see a use case for this more complex behavior.
The text was updated successfully, but these errors were encountered:
If a slot ID is repeated in
PyType_Spec
, the currentPyType_FromSpec
implementation happens to usually use the last one and ignore earlier ones, but:Py_tp_doc
is repeated,PyType_FromSpec
may leak memory, andPy_tp_members
is repeated,PyType_FromSpec
may memcpy unintialized memory (if slot specifies fewer members than the last one).We chould:
Alternatively, we could formalize that the last slot of a given ID “wins” and fix the leak/mem issue, but I don't see a use case for this more complex behavior.
The text was updated successfully, but these errors were encountered: