gh-135906: Use `_PyObject_CAST` in internal headers (GH-135892)
Fixes build errors encountered in python-greenlet/greenlet#450 when building greenlet on the free-threaded build.
---------
(cherry picked from commit
fe187fae8d8321f1b8d3c9560a35efe904de4217)
Co-authored-by: Charlie Lin <tuug@gmx.us>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
_Py_XGetRef(PyObject **ptr)
{
for (;;) {
- PyObject *value = _Py_atomic_load_ptr(ptr);
+ PyObject *value = _PyObject_CAST(_Py_atomic_load_ptr(ptr));
if (value == NULL) {
return value;
}
static inline PyObject *
_Py_TryXGetRef(PyObject **ptr)
{
- PyObject *value = _Py_atomic_load_ptr(ptr);
+ PyObject *value = _PyObject_CAST(_Py_atomic_load_ptr(ptr));
if (value == NULL) {
return value;
}
static inline int
_Py_TryXGetStackRef(PyObject **src, _PyStackRef *out)
{
- PyObject *op = _Py_atomic_load_ptr_relaxed(src);
+ PyObject *op = _PyObject_CAST(_Py_atomic_load_ptr_relaxed(src));
if (op == NULL) {
*out = PyStackRef_NULL;
return 1;
--- /dev/null
+Fix compilation errors when compiling the internal headers with a C++ compiler.