Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Description
While working on#99283 I've noticed this piece of code:
cpython/Modules/_ctypes/stgdict.c
Lines 360 to 364 in0124b5d
/* HACK Alert: I cannot be bothered to fix ctypes.com, so there has to | |
be a way to use the old, broken semantics: _fields_ are not extended | |
but replaced in subclasses. | |
XXX Remove this in ctypes 1.0! |
cpython/Modules/_ctypes/stgdict.c
Lines 382 to 383 in0124b5d
if (_PyObject_LookupAttr(type, | |
&_Py_ID(_use_broken_old_ctypes_structure_semantics_),&tmp)<0) |
I've never seen this before, so I went and searched for this on the internet:https://cs.github.com/?scopeName=All+repos&scope=&q=_use_broken_old_ctypes_structure_semantics_
Looks like not a single GitHub project uses it.
Where is that used inside?
» ag _use_broken_old_ctypes_structure_semantics_Tools/c-analyzer/cpython/globals-to-fix.tsv761:Modules/_ctypes/stgdict.c PyCStructUnionType_update_stgdict PyId__use_broken_old_ctypes_structure_semantics_ -Include/internal/pycore_global_strings.h253: STRUCT_FOR_ID(_use_broken_old_ctypes_structure_semantics_)Include/internal/pycore_runtime_init_generated.h762: INIT_ID(_use_broken_old_ctypes_structure_semantics_), \1879: string = &_Py_ID(_use_broken_old_ctypes_structure_semantics_);5734: if (Py_REFCNT((PyObject *)&_Py_ID(_use_broken_old_ctypes_structure_semantics_)) < _PyObject_IMMORTAL_REFCNT) {5735: _PyObject_Dump((PyObject *)&_Py_ID(_use_broken_old_ctypes_structure_semantics_));Modules/_ctypes/stgdict.c383: &_Py_ID(_use_broken_old_ctypes_structure_semantics_), &tmp) < 0)
Basically in only one place (and generate code).
No docs, no tests.
No issues:https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+use_broken_old_ctypes_structure_semantics
And it feels like a python2 era thing.
I think it is time to remove it.
PR is on its way, so we can discuss the changes in more details.
CC@pitrou as the original author.