File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -1130,8 +1130,13 @@ PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */
11301130# define Py_NotImplemented (&_Py_NotImplementedStruct)
11311131#endif
11321132
1133- /* Macro for returning Py_NotImplemented from a function */
1134- #define Py_RETURN_NOTIMPLEMENTED return Py_NotImplemented
1133+ /* Macro for returning Py_NotImplemented from a function. Only treat
1134+ * Py_NotImplemented as immortal in the limited C API 3.12 and newer. */
1135+ #if defined(Py_LIMITED_API ) && Py_LIMITED_API + 0 < 0x030c0000
1136+ # define Py_RETURN_NOTIMPLEMENTED return Py_NewRef(Py_NotImplemented)
1137+ #else
1138+ # define Py_RETURN_NOTIMPLEMENTED return Py_NotImplemented
1139+ #endif
11351140
11361141/* Rich comparison opcodes */
11371142#define Py_LT 0
Original file line number Diff line number Diff line change 1+ Fix :c:macro: `Py_RETURN_NOTIMPLEMENTED ` in limited C API 3.11 and older:
2+ don't treat ``Py_NotImplemented `` as immortal. Patch by Victor Stinner.
You can’t perform that action at this time.
0 commit comments