]> granicus.if.org Git - python/commit
bpo-29548: Recommend PyObject_Call APIs over PyEval_Call APIs. (GH-75)
authorINADA Naoki <methane@users.noreply.github.com>
Tue, 14 Mar 2017 09:00:59 +0000 (18:00 +0900)
committerGitHub <noreply@github.com>
Tue, 14 Mar 2017 09:00:59 +0000 (18:00 +0900)
commitaa289a59ff6398110e1122877c073c9354ee53db
tree9861df74503cb7556be87ec43642efb5c4790748
parent7e2a54cdd977078b40b82182e46b201f8163f659
bpo-29548: Recommend PyObject_Call APIs over PyEval_Call APIs. (GH-75)

PyEval_Call* APIs are not documented and they doesn't respect PY_SSIZE_T_CLEAN.
So add comment block which recommends PyObject_Call* APIs to ceval.h.

This commit also changes PyEval_CallMethod and PyEval_CallFunction
implementation same to PyObject_CallMethod and PyObject_CallFunction
to reduce future maintenance cost.  Optimization to avoid temporary
tuple are copied too.

PyEval_CallFunction(callable, "i", (int)i) now calls callable(i) instead of
raising TypeError.  But accepting this edge case is backward compatible.
Include/ceval.h
Objects/call.c