diff --git a/third_party/python/Include/abstract.h b/third_party/python/Include/abstract.h index 0655e9cb9..fb76b70c6 100644 --- a/third_party/python/Include/abstract.h +++ b/third_party/python/Include/abstract.h @@ -36,8 +36,12 @@ PyObject *_PyObject_FastCallKeywords(PyObject *func, PyObject **args, PyObject *_PyObject_Call_Prepend(PyObject *func, PyObject *obj, PyObject *args, PyObject *kwargs); +#ifdef USE_CHECKFUNCRESULT PyObject *_Py_CheckFunctionResult(PyObject *func, PyObject *result, const char *where); +#else +#define _Py_CheckFunctionResult(func, result, where) (result) +#endif #endif /* Py_LIMITED_API */ PyObject *PyObject_CallObject(PyObject *callable_object, PyObject *args); diff --git a/third_party/python/Objects/abstract.c b/third_party/python/Objects/abstract.c index 0de4da0b0..4082112d1 100644 --- a/third_party/python/Objects/abstract.c +++ b/third_party/python/Objects/abstract.c @@ -2210,6 +2210,7 @@ PyObject_CallObject(PyObject *o, PyObject *a) return PyEval_CallObjectWithKeywords(o, a, NULL); } +#ifdef USE_CHECKFUNCRESULT PyObject* _Py_CheckFunctionResult(PyObject *func, PyObject *result, const char *where) { @@ -2257,6 +2258,7 @@ _Py_CheckFunctionResult(PyObject *func, PyObject *result, const char *where) } return result; } +#endif PyObject * PyObject_Call(PyObject *func, PyObject *args, PyObject *kwargs) diff --git a/third_party/python/python.mk b/third_party/python/python.mk index bd0497e1a..660b58245 100644 --- a/third_party/python/python.mk +++ b/third_party/python/python.mk @@ -2167,6 +2167,7 @@ THIRD_PARTY_PYTHON_STDLIB_PYS = \ ifeq ($(MODE), dbg) THIRD_PARTY_PYTHON_FLAGS += \ -DUSE_TRACEMALLOC \ + -DUSE_CHECKFUNCRESULT \ -DUSE_BADINTERNALCALL THIRD_PARTY_PYTHON_STAGE1_A_SRCS += \ third_party/python/Modules/_tracemalloc.c