bpo-42990: Refactor _PyFrame_New_NoTrack() (GH-24566)

* Refactor _PyFrame_New_NoTrack() and PyFunction_NewWithQualName()
  code.
* PyFrame_New() checks for _PyEval_BuiltinsFromGlobals() failure.
* Fix a ref leak in _PyEval_BuiltinsFromGlobals() error path.
* Complete PyFunction_GetModule() documentation: it returns a
  borrowed reference and it can return NULL.
* Move _PyEval_BuiltinsFromGlobals() definition to the internal C
  API.
* PyFunction_NewWithQualName() uses _Py_IDENTIFIER() API for the
  "__name__" string to make it compatible with subinterpreters.
This commit is contained in:
Victor Stinner 2021-02-18 19:20:16 +01:00 committed by GitHub
parent cc96231f0a
commit 44085a3fc9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 117 additions and 115 deletions

View file

@ -61,9 +61,11 @@ There are a few functions specific to Python functions.
.. c:function:: PyObject* PyFunction_GetModule(PyObject *op)
Return the *__module__* attribute of the function object *op*. This is normally
a string containing the module name, but can be set to any other object by
Python code.
Return a :term:`borrowed reference` to the *__module__* attribute of the
function object *op*. It can be *NULL*.
This is normally a string containing the module name, but can be set to any
other object by Python code.
.. c:function:: PyObject* PyFunction_GetDefaults(PyObject *op)