-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed
Labels
3.14bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-C-APItype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
In the issue #91417 I removed PySequence_Fast(), commit 2ad069d:
Remove PySequence_Fast() from the limited C API. The function never worked with the limited C API. It was added by mistake.
Problem: PyQt6 uses the function! I propose to add back PySequence_Fast() to the limited C API.
PyQt6:
./qpy/QtOpenGL/qpyopengl_attribute_array.cpp: values = PySequence_Fast(values, "an attribute array must be a sequence");
./qpy/QtOpenGL/qpyopengl_attribute_array.cpp: itm = PySequence_Fast(itm,
./qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp: values = PySequence_Fast(values,
./qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp: itm = PySequence_Fast(itm,
./qpy/QtOpenGL/qpyopengl_value_array.cpp: PyObject *seq = PySequence_Fast(values,
They reimplemented PySequence_Fast_GET_SIZE() and PySequence_Fast_GET_ITEM() macros which don't work with the limited C API:
// Replacements for the corresponding Python macros that use the limited API.
#define Sequence_Fast_Size(o) \
(PyList_Check(o) ? PyList_Size(o) : PyTuple_Size(o))
#define Sequence_Fast_GetItem(o, i)\
(PyList_Check(o) ? PyList_GetItem(o, i) : PyTuple_GetItem(o, i))
CPython versions tested on:
3.14
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Labels
3.14bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-C-APItype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error